Module adcp.types.generated_poc.brand
Sub-modules
adcp.types.generated_poc.brand.acquire_rights_requestadcp.types.generated_poc.brand.acquire_rights_responseadcp.types.generated_poc.brand.creative_approval_requestadcp.types.generated_poc.brand.creative_approval_responseadcp.types.generated_poc.brand.get_brand_identity_requestadcp.types.generated_poc.brand.get_brand_identity_responseadcp.types.generated_poc.brand.get_rights_requestadcp.types.generated_poc.brand.get_rights_responseadcp.types.generated_poc.brand.revocation_notificationadcp.types.generated_poc.brand.rights_pricing_optionadcp.types.generated_poc.brand.rights_termsadcp.types.generated_poc.brand.update_rights_requestadcp.types.generated_poc.brand.update_rights_response
Classes
class AgenticCheckout (**data: Any)-
Expand source code
class AgenticCheckout(AdCPBaseModel): endpoint: Annotated[AnyUrl, Field(description='Base URL for checkout session API')] spec: Annotated[ Literal['openai_agentic_checkout_v1'], Field(description='Checkout API specification') ] supported_payment_providers: Annotated[ list[str] | None, Field(description='Payment providers supported by this checkout endpoint') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var endpoint : pydantic.networks.AnyUrlvar model_configvar spec : Literal['openai_agentic_checkout_v1']var supported_payment_providers : list[str] | None
Inherited members
class Agents (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Agents(RootModel[list[BrandAgentEntry]]): root: Annotated[ list[BrandAgentEntry], Field( description='Agents declared by this brand or house. One agent per type.', max_length=20 ), ]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[list[BrandAgentEntry]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : list[BrandAgentEntry]
class AnimationSpeed (*args, **kwds)-
Expand source code
class AnimationSpeed(Enum): slow = 'slow' moderate = 'moderate' fast = 'fast'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var fastvar moderatevar slow
class Architecture (*args, **kwds)-
Expand source code
class Architecture(Enum): branded_house = 'branded_house' house_of_brands = 'house_of_brands' hybrid = 'hybrid'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var branded_housevar house_of_brandsvar hybrid
class Asset (**data: Any)-
Expand source code
class Asset(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) asset_id: Annotated[str, Field(description='Unique identifier')] asset_type: Annotated[ asset_content_type.AssetContentType, Field(description='Type of asset content') ] url: Annotated[AnyUrl, Field(description='URL to CDN-hosted asset file')] tags: Annotated[ list[str] | None, Field(description="Tags for discovery (e.g., 'hero', 'lifestyle', 'product', 'holiday')"), ] = None name: Annotated[str | None, Field(description='Human-readable name')] = None description: Annotated[str | None, Field(description='Asset description or usage notes')] = None width: Annotated[int | None, Field(description='Image/video width in pixels')] = None height: Annotated[int | None, Field(description='Image/video height in pixels')] = None duration_seconds: Annotated[ float | None, Field(description='Video/audio duration in seconds') ] = None file_size_bytes: Annotated[int | None, Field(description='File size in bytes')] = None format: Annotated[str | None, Field(description="File format (e.g., 'jpg', 'mp4', 'mp3')")] = ( None ) metadata: Annotated[ dict[str, Any] | None, Field(description='Additional asset-specific metadata') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var asset_id : strvar asset_type : AssetContentTypevar description : str | Nonevar duration_seconds : float | Nonevar file_size_bytes : int | Nonevar format : str | Nonevar height : int | Nonevar metadata : dict[str, typing.Any] | Nonevar model_configvar name : str | Nonevar url : pydantic.networks.AnyUrlvar width : int | None
Inherited members
class AssetLibrary (**data: Any)-
Expand source code
class AssetLibrary(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(description='Display name of the asset library')] type: Annotated[Type2 | None, Field(description='Type of asset library')] = None url: Annotated[AnyUrl, Field(description='URL to the asset library (for human access)')] description: Annotated[ str | None, Field(description='Description of the library contents and usage') ] = None color_guide: Annotated[ ColorGuide | None, Field(description='Color guide for the asset library defining roles and palettes'), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var color_guide : ColorGuide | Nonevar description : str | Nonevar model_configvar name : strvar type : Type2 | Nonevar url : pydantic.networks.AnyUrl
Inherited members
class AuthorizedOperator (**data: Any)-
Expand source code
class AuthorizedOperator(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) domain: Annotated[ Domain, Field(description="Domain of the authorized operator (e.g., 'groupm.com')") ] brands: Annotated[ list[Brand1], Field( description="Brand IDs this operator is authorized for. Use ['*'] for all brands in the portfolio.", min_length=1, ), ] countries: Annotated[ list[Country] | None, Field( description='ISO 3166-1 alpha-2 country codes where this authorization applies. Omit for global authorization.' ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var brands : list[Brand1]var countries : list[Country] | Nonevar domain : Domainvar model_config
Inherited members
class Avatar (**data: Any)-
Expand source code
class Avatar(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) provider: str | None = None avatar_id: str | None = None settings: dict[str, Any] | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var avatar_id : str | Nonevar model_configvar provider : str | Nonevar settings : dict[str, typing.Any] | None
Inherited members
class Background (*args, **kwds)-
Expand source code
class Background(Enum): dark_bg = 'dark-bg' light_bg = 'light-bg' transparent_bg = 'transparent-bg'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var dark_bgvar light_bgvar transparent_bg
class BackgroundContrast (*args, **kwds)-
Expand source code
class BackgroundContrast(Enum): light_only = 'light_only' dark_only = 'dark_only' any = 'any'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var anyvar dark_onlyvar light_only
class Backgrounds (**data: Any)-
Expand source code
class Backgrounds(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) types_allowed: Annotated[ list[TypesAllowedEnum] | None, Field(description='Permitted background types') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar types_allowed : list[TypesAllowedEnum] | None
Inherited members
class BorderRadius (**data: Any)-
Expand source code
class BorderRadius(AdCPBaseModel): none: Annotated[str | None, Field(description="Explicitly sharp corners (e.g., '0')")] = None default: Annotated[ str | None, Field( description="Default border radius for UI components (e.g., '8px', '12px', '0'). For graphic/illustration elements, see graphic_style.corner_radius." ), ] = None small: Annotated[ str | None, Field(description="Small border radius for compact elements (e.g., '4px')") ] = None large: Annotated[ str | None, Field(description="Large border radius for cards and containers (e.g., '16px', '24px')"), ] = None pill: Annotated[str | None, Field(description="Fully rounded / pill shape (e.g., '999px')")] = ( None )Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var default : str | Nonevar large : str | Nonevar model_configvar none : str | Nonevar pill : str | Nonevar small : str | None
Inherited members
class Brand (**data: Any)-
Expand source code
class Brand(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) id: Annotated[ BrandId, Field(description='Brand identifier within the house. House chooses this ID.') ] url: Annotated[ AnyUrl | None, Field(description='Primary brand URL for context and asset discovery') ] = None names: Annotated[ list[LocalizedName], Field( description='Localized brand names. Multiple entries per language allowed for aliases.', min_length=1, ), ] keller_type: KellerType | None = None parent_brand: Annotated[ BrandId | None, Field(description='Parent brand ID for sub-brands and endorsed brands') ] = None description: Annotated[str | None, Field(description='Brand description')] = None industries: Annotated[ list[str] | None, Field( description="Brand industries (e.g., ['automotive'] or ['pharmaceutical', 'cpg'] for a consumer health company). Describes what the company does — not what regulatory regimes apply (use policy_categories for that).", min_length=1, ), ] = None target_audience: Annotated[str | None, Field(description='Primary target audience')] = None logos: Annotated[list[Logo] | None, Field(description='Brand logo assets')] = None colors: Colors | None = None fonts: Fonts | None = None tone: Annotated[ str | Tone | None, Field(description='Brand voice and messaging tone guidelines') ] = None tagline: Annotated[ str | Tagline | None, Field( description='Brand tagline or slogan. Accepts a plain string or a localized array matching the names pattern.' ), ] = None assets: Annotated[list[Asset] | None, Field(description='Brand asset library')] = None properties: Annotated[ list[Property] | None, Field( description='Digital properties associated with this brand — owned, managed, or represented' ), ] = None product_catalog: ProductCatalog | None = None privacy_policy_url: Annotated[ AnyUrl | None, Field(description="URL to the brand's privacy policy") ] = None data_subject_contestation: DataSubjectContestation | None = None disclaimers: Annotated[ list[Disclaimer] | None, Field(description='Legal disclaimers for creatives') ] = None voice_synthesis: Annotated[ VoiceSynthesis | None, Field(description='TTS voice synthesis configuration for AI-generated audio'), ] = None avatar: Annotated[Avatar | None, Field(description='Visual avatar configuration')] = None visual_guidelines: Annotated[ VisualGuidelines | None, Field(description='Structured visual rules for generative creative systems'), ] = None agents: Annotated[ Agents | None, Field( description='Agents authorized to act on behalf of this brand. Overrides house-level agents of the same type.' ), ] = None brand_agent: Annotated[ BrandAgent | None, Field( deprecated=True, description="Deprecated: use agents array with type 'brand' instead. Brand agent that provides dynamic brand data via MCP.", ), ] = None rights_agent: Annotated[ RightsAgent | None, Field( deprecated=True, description="Deprecated: use agents array with type 'rights' instead. Rights licensing agent for this brand.", ), ] = None contact: Annotated[Contact1 | None, Field(description='Brand-level contact information')] = None collections: Annotated[ list[Collection] | None, Field( description="Collections this person or brand is associated with. Enables bidirectional linking: a collection's talent references brand.json via brand_url, and brand.json links back to collections." ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var agents : Agents | Nonevar assets : list[Asset] | Nonevar avatar : Avatar | Nonevar collections : list[Collection] | Nonevar colors : Colors | Nonevar contact : Contact1 | Nonevar data_subject_contestation : DataSubjectContestation | Nonevar description : str | Nonevar disclaimers : list[Disclaimer] | Nonevar fonts : Fonts | Nonevar id : BrandIdvar industries : list[str] | Nonevar keller_type : KellerType | Nonevar logos : list[Logo] | Nonevar model_configvar names : list[LocalizedName]var parent_brand : BrandId | Nonevar privacy_policy_url : pydantic.networks.AnyUrl | Nonevar product_catalog : ProductCatalog | Nonevar properties : list[Property] | Nonevar tagline : str | Tagline | Nonevar target_audience : str | Nonevar tone : str | Tone | Nonevar url : pydantic.networks.AnyUrl | Nonevar visual_guidelines : VisualGuidelines | Nonevar voice_synthesis : VoiceSynthesis | None
Instance variables
var brand_agent : BrandAgent | None-
Expand source code
def __get__(self, obj: BaseModel | None, obj_type: type[BaseModel] | None = None) -> Any: if obj is None: if self.wrapped_property is not None: return self.wrapped_property.__get__(None, obj_type) raise AttributeError(self.field_name) warnings.warn(self.msg, DeprecationWarning, stacklevel=2) if self.wrapped_property is not None: return self.wrapped_property.__get__(obj, obj_type) return obj.__dict__[self.field_name]Read-only data descriptor used to emit a runtime deprecation warning before accessing a deprecated field.
Attributes
msg- The deprecation message to be emitted.
wrapped_property- The property instance if the deprecated field is a computed field, or
None. field_name- The name of the field being deprecated.
var rights_agent : RightsAgent | None-
Expand source code
def __get__(self, obj: BaseModel | None, obj_type: type[BaseModel] | None = None) -> Any: if obj is None: if self.wrapped_property is not None: return self.wrapped_property.__get__(None, obj_type) raise AttributeError(self.field_name) warnings.warn(self.msg, DeprecationWarning, stacklevel=2) if self.wrapped_property is not None: return self.wrapped_property.__get__(obj, obj_type) return obj.__dict__[self.field_name]Read-only data descriptor used to emit a runtime deprecation warning before accessing a deprecated field.
Attributes
msg- The deprecation message to be emitted.
wrapped_property- The property instance if the deprecated field is a computed field, or
None. field_name- The name of the field being deprecated.
Inherited members
class Brand1 (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Brand1(RootModel[str]): root: Annotated[str, Field(pattern='^([a-z0-9_]+|\\*)$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class BrandAgent (**data: Any)-
Expand source code
class BrandAgent(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) url: Annotated[AnyUrl, Field(description='Brand agent MCP endpoint URL')] id: Annotated[ str, Field( description='Agent identifier (useful for logging, multi-tenant DAMs)', pattern='^[a-z0-9_]+$', ), ]Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var id : strvar model_configvar url : pydantic.networks.AnyUrl
Inherited members
class BrandAgentEntry (**data: Any)-
Expand source code
class BrandAgentEntry(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) type: Annotated[ brand_agent_type.BrandAgentType, Field(description='Functional role of this agent') ] url: Annotated[AnyUrl, Field(description='Agent endpoint URL (MCP or A2A)')] id: Annotated[ str, Field( description='Agent identifier (useful for logging, multi-tenant platforms)', max_length=100, pattern='^[a-z0-9_]+$', ), ] description: Annotated[ str | None, Field( description="Human-readable description of this agent's capabilities or scope", max_length=500, ), ] = None jwks_uri: Annotated[ AnyUrl | None, Field( description="HTTPS URL of the agent's JWKS (RFC 7517) containing public keys used to verify artifacts this agent signs or requests it sends. Verified artifacts include signed governance_context tokens (for governance agents) and RFC 9421 HTTP Signatures on outgoing requests (for any agent). When absent, verifiers MUST default to /.well-known/jwks.json on the origin of `url`. Keys are identified by `kid` in the JWS header or RFC 9421 `keyid` parameter; JWKS MAY contain multiple keys to support rotation and per-purpose separation via `key_ops` and `use`." ), ] = None scope: Annotated[ list[ScopeEnum] | None, Field( description='For governance agents: which governance responsibilities this agent handles. Values correspond to compliance specialisms. When a house declares multiple governance agents, scope distinguishes them. When absent on a governance agent, the agent is assumed to handle all governance categories.' ), ] = None available_uses: Annotated[ list[right_use.RightUse] | None, Field(description='For rights agents: rights uses available for licensing', min_length=1), ] = None right_types: Annotated[ list[right_type.RightType] | None, Field(description='For rights agents: types of rights available', min_length=1), ] = None countries: Annotated[ list[Country] | None, Field( description='ISO 3166-1 alpha-2 country codes where this agent operates. Omit for global scope.' ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var available_uses : list[RightUse] | Nonevar countries : list[Country] | Nonevar description : str | Nonevar id : strvar jwks_uri : pydantic.networks.AnyUrl | Nonevar model_configvar right_types : list[RightType] | Nonevar scope : list[ScopeEnum] | Nonevar type : BrandAgentTypevar url : pydantic.networks.AnyUrl
Inherited members
class BrandDiscovery (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class BrandDiscovery( RootModel[ BrandDiscovery1 | BrandDiscovery2 | BrandDiscovery3 | BrandDiscovery4 | BrandDiscovery5 ] ): root: Annotated[ BrandDiscovery1 | BrandDiscovery2 | BrandDiscovery3 | BrandDiscovery4 | BrandDiscovery5, Field( description='Brand identity and discovery file. Hosted at /.well-known/brand.json on house domains. Contains the full brand portfolio with identity, creative assets, and digital properties. Brands are identified by house + brand_id (like properties are identified by publisher + property_id). Supports variants: house portfolio (full brand data), brand agent (agent provides brand info via MCP), house redirect (pointer to house domain), or authoritative location redirect.', examples=[ { '$schema': '/schemas/latest/brand.json', 'authoritative_location': 'https://adcontextprotocol.org/brand/abc123/brand.json', }, { '$schema': '/schemas/latest/brand.json', 'house': 'nikeinc.com', 'note': 'Redirect to house domain for full brand portfolio', }, { '$schema': '/schemas/latest/brand.json', 'version': '1.0', 'agents': [ {'type': 'brand', 'url': 'https://agent.acme.com/mcp', 'id': 'acme_brand'} ], }, { '$schema': '/schemas/latest/brand.json', 'version': '1.0', 'house': { 'domain': 'pg.com', 'name': 'Procter & Gamble', 'architecture': 'house_of_brands', 'agents': [ { 'type': 'governance', 'url': 'https://agents.pg.com/governance', 'id': 'pg_governance', 'description': 'Brand safety and compliance for all P&G brands', 'jwks_uri': 'https://agents.pg.com/.well-known/jwks.json', 'scope': ['spend_authority', 'delivery_monitor', 'brand_safety'], } ], }, 'brands': [ { 'id': 'tide', 'url': 'https://tide.com', 'names': [{'en_US': 'Tide'}, {'es_MX': 'Tide'}, {'zh_CN': '汰渍'}], 'keller_type': 'master', 'industries': ['cpg'], 'description': 'Laundry detergent brand', 'logos': [ { 'url': 'https://cdn.pg.com/tide/logo-square.png', 'orientation': 'square', 'background': 'transparent-bg', 'variant': 'primary', 'usage': 'Primary logo for general use', }, { 'url': 'https://cdn.pg.com/tide/logo-horizontal-dark.png', 'orientation': 'horizontal', 'background': 'dark-bg', 'variant': 'full-lockup', 'usage': 'Full lockup for dark backgrounds', }, ], 'colors': { 'primary': '#FF6600', 'secondary': '#0066CC', 'background': '#FFFFFF', 'text': '#1A1A1A', 'heading': '#FF6600', 'body': '#333333', 'label': '#666666', 'border': '#E5E5E5', 'divider': '#F0F0F0', 'surface_1': '#F9F9F9', 'surface_2': '#EFEFEF', }, 'tone': { 'voice': 'clean, fresh, trustworthy', 'attributes': ['reliable', 'family-friendly', 'confident'], 'dos': ['Use simple, direct language', 'Emphasize cleaning power'], 'donts': ['Avoid technical jargon', "Don't be overly serious"], }, 'tagline': [{'en_US': "Tide's In, Dirt's Out"}], 'visual_guidelines': { 'photography': { 'realism': 'natural', 'lighting': 'soft daylight', 'color_temperature': 'warm', 'contrast': 'medium', 'depth_of_field': 'medium', 'subject': { 'people': { 'age_range': '25-45', 'diversity': 'mixed', 'mood': ['confident', 'relaxed', 'happy'], }, 'product_focus': 'in-use', 'setting': 'indoor', }, 'framing': { 'subject_position': 'center', 'crop_style': 'waist-up', 'perspective': 'eye-level', }, 'preferred_aspect_ratios': ['16:9', '4:5', '1:1'], }, 'graphic_style': { 'style_type': 'flat_illustration', 'stroke_style': 'rounded', 'stroke_weight': '2px', 'corner_radius': '12px', }, 'shapes': { 'primary_shape': 'circle', 'secondary_shapes': ['rounded_rectangle'], 'usage': {'max_per_layout': 2, 'overlap_allowed': False}, }, 'iconography': { 'style': 'outline', 'stroke_weight': '2px', 'corner_style': 'rounded', 'usage': {'max_per_frame': 3, 'size_ratio': '1:8'}, }, 'composition': { 'overlays': { 'gradient_style': 'linear', 'gradient_direction': '180deg', 'opacity': '60%', }, 'texture': {'style': 'none'}, 'backgrounds': { 'types_allowed': [ 'solid_color', 'gradient', 'blurred_photo', ] }, }, 'border_radius': { 'none': '0', 'default': '12px', 'small': '4px', 'large': '20px', 'pill': '999px', }, 'elevation': { 'none': 'none', 'subtle': '0 1px 3px rgba(0,0,0,0.08)', 'card': '0 4px 8px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.06)', 'modal': '0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.06)', }, 'spacing': { 'unit': '8px', 'scale': { 'xs': '4px', 'sm': '8px', 'md': '16px', 'lg': '24px', 'xl': '32px', '2xl': '48px', }, }, 'motion': { 'transition_style': 'dissolve', 'animation_speed': 'moderate', 'easing': 'ease-in-out', 'text_entrance': 'fade', 'pacing': 'moderate', 'kinetic_typography': False, }, 'logo_placement': { 'preferred_position': 'bottom-right', 'min_clear_space': '0.5x', 'min_height': '32px', 'background_contrast': 'any', }, 'colorways': [ { 'name': 'primary', 'foreground': '#FFFFFF', 'background': '#FF6600', 'accent': '#0066CC', }, { 'name': 'inverted', 'foreground': '#FF6600', 'background': '#FFFFFF', 'accent': '#0066CC', 'border': '#FF6600', }, ], 'type_scale': { 'base_width': '1080px', 'heading': { 'font': 'primary', 'size': '48px', 'weight': '700', 'line_height': '1.1', 'text_transform': 'none', }, 'subheading': { 'font': 'primary', 'size': '24px', 'weight': '600', 'line_height': '1.3', }, 'body': { 'font': 'secondary', 'size': '16px', 'weight': '400', 'line_height': '1.5', }, 'cta': { 'font': 'primary', 'size': '18px', 'weight': '700', 'text_transform': 'uppercase', 'letter_spacing': '0.05em', }, }, 'restrictions': [ 'Never place text over the product', 'Do not use black backgrounds', 'No stock photography of people on phones', ], }, 'properties': [ {'type': 'website', 'identifier': 'tide.com', 'primary': True}, { 'type': 'mobile_app', 'store': 'apple', 'identifier': 'com.pg.tide', }, ], 'contact': {'email': 'brands@pg.com'}, }, { 'id': 'pampers', 'url': 'https://pampers.com', 'names': [{'en_US': 'Pampers'}], 'keller_type': 'master', 'industries': ['cpg'], 'logos': [ { 'url': 'https://cdn.pg.com/pampers/logo.png', 'orientation': 'horizontal', 'variant': 'primary', } ], 'colors': {'primary': '#00A0D2'}, 'properties': [ {'type': 'website', 'identifier': 'pampers.com', 'primary': True} ], }, ], 'contact': {'name': 'P&G Brand Team', 'email': 'brands@pg.com'}, 'last_updated': '2026-01-15T10:00:00Z', }, { '$schema': '/schemas/latest/brand.json', 'version': '1.0', 'house': { 'domain': 'nikeinc.com', 'name': 'Nike, Inc.', 'architecture': 'hybrid', }, 'brands': [ { 'id': 'nike', 'url': 'https://nike.com', 'names': [{'en_US': 'Nike'}, {'zh_CN': '耐克'}, {'ja_JP': 'ナイキ'}], 'keller_type': 'master', 'logos': [ { 'url': 'https://cdn.nike.com/swoosh-dark.svg', 'orientation': 'horizontal', 'background': 'dark-bg', 'variant': 'icon', 'usage': 'Swoosh icon for dark backgrounds', }, { 'url': 'https://cdn.nike.com/logo-full.svg', 'orientation': 'horizontal', 'background': 'light-bg', 'variant': 'full-lockup', 'usage': 'Full logo with wordmark for light backgrounds', }, ], 'colors': {'primary': '#111111', 'accent': '#FF6600'}, 'tone': 'inspirational, bold, athletic', 'tagline': [{'en_US': 'Just Do It'}], 'properties': [ {'type': 'website', 'identifier': 'nike.com', 'primary': True}, {'type': 'website', 'identifier': 'nike.cn', 'region': 'CN'}, { 'type': 'mobile_app', 'store': 'apple', 'identifier': 'com.nike.omega', }, ], }, { 'id': 'air_jordan', 'url': 'https://jordan.com', 'names': [ {'en_US': 'Air Jordan'}, {'en_US': 'Jordan'}, {'en_US': 'Jumpman'}, ], 'keller_type': 'endorsed', 'parent_brand': 'nike', 'logos': [ { 'url': 'https://cdn.nike.com/jumpman.svg', 'orientation': 'square', 'background': 'transparent-bg', 'variant': 'icon', } ], 'colors': {'primary': '#CE1141', 'secondary': '#111111'}, 'properties': [ {'type': 'website', 'identifier': 'jordan.com', 'primary': True}, {'type': 'website', 'identifier': 'jumpman23.com'}, ], 'brand_agent': {'url': 'https://dam.nike.com/mcp', 'id': 'nike_dam'}, }, { 'id': 'converse', 'url': 'https://converse.com', 'names': [{'en_US': 'Converse'}], 'keller_type': 'independent', 'logos': [ { 'url': 'https://cdn.converse.com/star.svg', 'orientation': 'square', 'variant': 'icon', } ], 'properties': [ {'type': 'website', 'identifier': 'converse.com', 'primary': True} ], }, ], 'authorized_operators': [ { 'domain': 'wpp.com', 'brands': ['nike', 'air_jordan'], 'countries': ['US', 'GB', 'DE', 'FR'], }, {'domain': 'dentsu.co.jp', 'brands': ['nike'], 'countries': ['JP']}, {'domain': 'nike.com', 'brands': ['*']}, ], 'last_updated': '2026-01-15T10:00:00Z', }, { '$schema': '/schemas/latest/brand.json', 'version': '1.0', 'house': { 'domain': 'mediavine.com', 'name': 'Mediavine', 'architecture': 'branded_house', }, 'brands': [ { 'id': 'mediavine', 'url': 'https://mediavine.com', 'names': [{'en_US': 'Mediavine'}], 'keller_type': 'master', 'properties': [ {'type': 'website', 'identifier': 'mediavine.com', 'primary': True}, { 'type': 'website', 'identifier': 'thehollywoodgossip.com', 'relationship': 'delegated', }, { 'type': 'website', 'identifier': 'foodfanatic.com', 'relationship': 'delegated', }, { 'type': 'website', 'identifier': 'thebiglead.com', 'relationship': 'delegated', }, ], 'agents': [ { 'type': 'sales', 'url': 'https://ads.mediavine.com/mcp', 'id': 'mediavine_sales', } ], } ], 'last_updated': '2026-01-15T10:00:00Z', }, ], title='Brand Discovery', ), ] 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[BrandDiscovery1, BrandDiscovery2, BrandDiscovery3, BrandDiscovery4, BrandDiscovery5]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : BrandDiscovery1 | BrandDiscovery2 | BrandDiscovery3 | BrandDiscovery4 | BrandDiscovery5
class BrandDiscovery1 (**data: Any)-
Expand source code
class BrandDiscovery1(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) field_schema: Annotated[str | None, Field(alias='$schema')] = None authoritative_location: Annotated[ AnyUrl, Field(description='HTTPS URL of the authoritative brand.json file') ] last_updated: AwareDatetime | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.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 BrandDiscovery2 (**data: Any)-
Expand source code
class BrandDiscovery2(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) field_schema: Annotated[str | None, Field(alias='$schema')] = None house: Annotated[Domain, Field(description='House domain to fetch brand portfolio from')] region: Annotated[ str | None, Field( description='ISO 3166-1 alpha-2 country code if this is a regional domain', pattern='^[A-Z]{2}$', ), ] = None note: str | None = None last_updated: AwareDatetime | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var field_schema : str | Nonevar house : Domainvar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar note : str | Nonevar region : str | None
Inherited members
class BrandDiscovery3 (**data: Any)-
Expand source code
class BrandDiscovery3(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) field_schema: Annotated[str | None, Field(alias='$schema')] = None version: str | None = None agents: Agents brand_agent: Annotated[BrandAgent | None, Field(deprecated=True)] = None contact: Contact | None = None data_subject_contestation: DataSubjectContestation | None = None last_updated: AwareDatetime | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var agents : Agentsvar contact : Contact | Nonevar data_subject_contestation : DataSubjectContestation | Nonevar field_schema : str | Nonevar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar version : str | None
Instance variables
var brand_agent : BrandAgent | None-
Expand source code
def __get__(self, obj: BaseModel | None, obj_type: type[BaseModel] | None = None) -> Any: if obj is None: if self.wrapped_property is not None: return self.wrapped_property.__get__(None, obj_type) raise AttributeError(self.field_name) warnings.warn(self.msg, DeprecationWarning, stacklevel=2) if self.wrapped_property is not None: return self.wrapped_property.__get__(obj, obj_type) return obj.__dict__[self.field_name]Read-only data descriptor used to emit a runtime deprecation warning before accessing a deprecated field.
Attributes
msg- The deprecation message to be emitted.
wrapped_property- The property instance if the deprecated field is a computed field, or
None. field_name- The name of the field being deprecated.
Inherited members
class BrandDiscovery4 (**data: Any)-
Expand source code
class BrandDiscovery4(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) field_schema: Annotated[str | None, Field(alias='$schema')] = None version: str | None = None agents: Agents | None = None brand_agent: Annotated[BrandAgent, Field(deprecated=True)] contact: Contact | None = None data_subject_contestation: DataSubjectContestation | None = None last_updated: AwareDatetime | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var agents : Agents | Nonevar contact : Contact | Nonevar data_subject_contestation : DataSubjectContestation | Nonevar field_schema : str | Nonevar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar version : str | None
Instance variables
var brand_agent : BrandAgent-
Expand source code
def __get__(self, obj: BaseModel | None, obj_type: type[BaseModel] | None = None) -> Any: if obj is None: if self.wrapped_property is not None: return self.wrapped_property.__get__(None, obj_type) raise AttributeError(self.field_name) warnings.warn(self.msg, DeprecationWarning, stacklevel=2) if self.wrapped_property is not None: return self.wrapped_property.__get__(obj, obj_type) return obj.__dict__[self.field_name]Read-only data descriptor used to emit a runtime deprecation warning before accessing a deprecated field.
Attributes
msg- The deprecation message to be emitted.
wrapped_property- The property instance if the deprecated field is a computed field, or
None. field_name- The name of the field being deprecated.
Inherited members
class BrandDiscovery5 (**data: Any)-
Expand source code
class BrandDiscovery5(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) field_schema: Annotated[str | None, Field(alias='$schema')] = None version: str | None = None house: House brands: Annotated[list[Brand], Field(description='Brands owned by this house', min_length=1)] contact: Contact | None = None authorized_operators: Annotated[ list[AuthorizedOperator] | None, Field( description="Entities authorized to represent brands from this house. Third parties (sellers, platforms) can verify an operator's authorization by checking this list. Operators are identified by domain." ), ] = None trademarks: list[Trademark] | None = None last_updated: AwareDatetime | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var brands : list[Brand]var contact : Contact | Nonevar field_schema : str | Nonevar house : Housevar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar trademarks : list[Trademark] | Nonevar version : str | None
Inherited members
class BrandId (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class BrandId(RootModel[str]): root: Annotated[ str, Field( description='Brand identifier within the house portfolio. Lowercase alphanumeric with underscores. House chooses this ID.', pattern='^[a-z0-9_]+$', ), ]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class BrandShapes (**data: Any)-
Expand source code
class BrandShapes(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) primary_shape: Annotated[ str | None, Field(description="Primary brand shape (e.g., 'rounded_rectangle', 'circle', 'hexagon')"), ] = None secondary_shapes: Annotated[ list[str] | None, Field(description='Secondary shapes in the brand vocabulary') ] = None usage: Annotated[Usage | None, Field(description='Shape usage rules')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar primary_shape : str | Nonevar secondary_shapes : list[str] | Nonevar usage : Usage | None
Inherited members
class Collection (**data: Any)-
Expand source code
class Collection(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) collection_id: Annotated[ str | None, Field(description="Collection identifier as used in the seller's get_products responses"), ] = None name: Annotated[str, Field(description='Human-readable collection name')] role: Annotated[ talent_role.TalentRole | None, Field(description="This person's role on the collection") ] = None seller_agent_url: Annotated[ AnyUrl | None, Field( description='URL of the sales agent that sells inventory for this collection. Buyer agents can query this agent for collection products.' ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var collection_id : str | Nonevar model_configvar name : strvar role : TalentRole | Nonevar seller_agent_url : pydantic.networks.AnyUrl | None
Inherited members
class ColorGuide (**data: Any)-
Expand source code
class ColorGuide(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) roles: Annotated[ list[str] | None, Field( description='Named color roles used in the library (e.g., base, shadow_1, highlight_1, stroke)' ), ] = None palettes: Annotated[ list[Palette] | None, Field(description='Named color palettes mapping roles to specific colors'), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar palettes : list[Palette] | Nonevar roles : list[str] | None
Inherited members
class ColorTemperature (*args, **kwds)-
Expand source code
class ColorTemperature(Enum): warm = 'warm' neutral = 'neutral' cool = 'cool'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var coolvar neutralvar warm
class ColorValue (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class ColorValue(RootModel[ColorValue1 | ColorValue2]): root: ColorValue1 | ColorValue2 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[ColorValue1, ColorValue2]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : ColorValue1 | ColorValue2
class ColorValue1 (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class ColorValue1(RootModel[str]): root: Annotated[str, Field(pattern='^#[0-9A-Fa-f]{6}$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Subclasses
Class variables
var model_configvar root : str
class ColorValue2 (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class ColorValue2(RootModel[list[ColorValue2Item]]): root: Annotated[list[ColorValue2Item], Field(min_length=1)]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[list[ColorValue2Item]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : list[ColorValue2Item]
class ColorValue2Item (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class ColorValue2Item(ColorValue1): passUsage 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
- ColorValue1
- pydantic.root_model.RootModel[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_config
class Colors (**data: Any)-
Expand source code
class Colors(AdCPBaseModel): primary: ColorValue | None = None secondary: ColorValue | None = None accent: ColorValue | None = None background: ColorValue | None = None text: ColorValue | None = None heading: ColorValue | None = None body: ColorValue | None = None label: ColorValue | None = None border: ColorValue | None = None divider: ColorValue | None = None surface_1: ColorValue | None = None surface_2: ColorValue | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var accent : ColorValue | Nonevar background : ColorValue | Nonevar body : ColorValue | Nonevar border : ColorValue | Nonevar divider : ColorValue | Nonevar heading : ColorValue | Nonevar label : ColorValue | Nonevar model_configvar primary : ColorValue | Nonevar secondary : ColorValue | Nonevar surface_1 : ColorValue | Nonevar surface_2 : ColorValue | Nonevar text : ColorValue | None
Inherited members
class Colorway (**data: Any)-
Expand source code
class Colorway(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(description="Colorway name (e.g., 'primary', 'inverted', 'subtle')")] foreground: HexColor background: HexColor accent: HexColor | None = None border: HexColor | None = None cta_foreground: Annotated[ HexColor | None, Field(description='CTA text/icon color, if different from foreground') ] = None cta_background: Annotated[ HexColor | None, Field(description='CTA button/container color, if different from accent') ] = None channels: Annotated[ list[str] | None, Field( description="Channels or contexts where this colorway applies (e.g., 'online', 'print', 'pos', 'social', 'outdoor'). Omit for universal colorways." ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var accent : HexColor | Nonevar background : HexColorvar border : HexColor | Nonevar channels : list[str] | Nonevar cta_background : HexColor | Nonevar cta_foreground : HexColor | Nonevar foreground : HexColorvar model_configvar name : str
Inherited members
class CompositionRules (**data: Any)-
Expand source code
class CompositionRules(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) overlays: Annotated[Overlays | None, Field(description='Graphic overlay rules')] = None texture: Annotated[Texture | None, Field(description='Texture treatment rules')] = None backgrounds: Annotated[Backgrounds | None, Field(description='Background treatment rules')] = ( None )Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var backgrounds : Backgrounds | Nonevar model_configvar overlays : Overlays | Nonevar texture : Texture | None
Inherited members
class Contact (**data: Any)-
Expand source code
class Contact(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(max_length=255, min_length=1)] email: Annotated[EmailStr | None, Field(max_length=255)] = None domain: Domain | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var domain : Domain | Nonevar email : pydantic.networks.EmailStr | Nonevar model_configvar name : str
Inherited members
class Contact1 (**data: Any)-
Expand source code
class Contact1(AdCPBaseModel): email: Annotated[EmailStr | None, Field(description='Contact email')] = None phone: Annotated[str | None, Field(description='Contact phone number')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var email : pydantic.networks.EmailStr | Nonevar model_configvar phone : str | None
Inherited members
class Contrast (*args, **kwds)-
Expand source code
class Contrast(Enum): low = 'low' medium = 'medium' high = 'high'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var highvar lowvar medium
class CornerStyle (*args, **kwds)-
Expand source code
class CornerStyle(Enum): rounded = 'rounded' square = 'square' mixed = 'mixed'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var mixedvar roundedvar square
class Country (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Country(RootModel[str]): root: Annotated[str, Field(pattern='^[A-Z]{2}$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class DataSubjectContestation (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class DataSubjectContestation(RootModel[DataSubjectContestation2 | DataSubjectContestation3]): root: Annotated[ DataSubjectContestation2 | DataSubjectContestation3, Field( description='Contact point where a data subject can request human intervention, express their view, or contest an automated decision — satisfying GDPR Article 22(3) and EU AI Act Article 26(11) transparency obligations. This is a contact reference (URL, email, or both), not a machine-callable API. AdCP surfaces the pointer; the deployer runs the contestation workflow.' ), ] 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[DataSubjectContestation2, DataSubjectContestation3]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : DataSubjectContestation2 | DataSubjectContestation3
class DataSubjectContestation2 (**data: Any)-
Expand source code
class DataSubjectContestation2(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) url: Annotated[ AnyUrl, Field(description='HTTPS URL to a human-accessible contestation form or information page.'), ] email: Annotated[ EmailStr | None, Field( description='Email address for contestation requests. Deployer MUST monitor and respond within the timelines set by applicable law (e.g., 1 month under GDPR Art. 12(3)).' ), ] = None languages: Annotated[ list[str] | None, Field( description="BCP 47 language tags the contestation channel supports (e.g., ['en', 'de', 'fr']). At minimum SHOULD include a language spoken in every jurisdiction where the brand runs regulated-vertical campaigns." ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var email : pydantic.networks.EmailStr | Nonevar languages : list[str] | Nonevar model_configvar url : pydantic.networks.AnyUrl
Inherited members
class DataSubjectContestation3 (**data: Any)-
Expand source code
class DataSubjectContestation3(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) url: Annotated[ AnyUrl | None, Field(description='HTTPS URL to a human-accessible contestation form or information page.'), ] = None email: Annotated[ EmailStr, Field( description='Email address for contestation requests. Deployer MUST monitor and respond within the timelines set by applicable law (e.g., 1 month under GDPR Art. 12(3)).' ), ] languages: Annotated[ list[str] | None, Field( description="BCP 47 language tags the contestation channel supports (e.g., ['en', 'de', 'fr']). At minimum SHOULD include a language spoken in every jurisdiction where the brand runs regulated-vertical campaigns." ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var email : pydantic.networks.EmailStrvar languages : list[str] | Nonevar model_configvar url : pydantic.networks.AnyUrl | None
Inherited members
class DepthOfField (*args, **kwds)-
Expand source code
class DepthOfField(Enum): shallow = 'shallow' medium = 'medium' deep = 'deep'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var deepvar mediumvar shallow
class Disclaimer (**data: Any)-
Expand source code
class Disclaimer(AdCPBaseModel): text: str context: str | None = None required: bool | None = TrueBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var context : str | Nonevar model_configvar required : bool | Nonevar text : str
Inherited members
class Domain (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Domain(RootModel[str]): root: Annotated[ str, Field( description='A valid domain name', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class Elevation (**data: Any)-
Expand source code
class Elevation(AdCPBaseModel): none: Annotated[str | None, Field(description="No shadow (e.g., 'none')")] = None subtle: Annotated[ str | None, Field(description="Subtle shadow for slight lift (e.g., '0 1px 2px rgba(0,0,0,0.05)')"), ] = None card: Annotated[ str | None, Field( description="Card-level shadow (e.g., '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)')" ), ] = None modal: Annotated[ str | None, Field( description="Modal/overlay shadow (e.g., '0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)')" ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var card : str | Nonevar modal : str | Nonevar model_configvar none : str | Nonevar subtle : str | None
Inherited members
class Fallback (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Fallback(RootModel[str]): root: Annotated[str, Field(max_length=100)]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class FeedFormat (*args, **kwds)-
Expand source code
class FeedFormat(Enum): google_merchant_center = 'google_merchant_center' facebook_catalog = 'facebook_catalog' openai_product_feed = 'openai_product_feed' custom = 'custom'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var customvar facebook_catalogvar google_merchant_centervar openai_product_feed
class FontFile (**data: Any)-
Expand source code
class FontFile(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) url: Annotated[AnyUrl, Field(description='HTTPS URL to the font file (WOFF2, TTF, or OTF)')] weight: Annotated[ int | None, Field(description='CSS numeric font-weight for static fonts (100-900)', ge=100, le=900), ] = None weight_range: Annotated[ list[WeightRangeItem] | None, Field( description='Variable font weight axis range as [min, max] (e.g., [100, 900]). Use instead of weight for variable fonts.', max_length=2, min_length=2, ), ] = None style: Annotated[Style | None, Field(description='CSS font-style')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar style : Style | Nonevar url : pydantic.networks.AnyUrlvar weight : int | Nonevar weight_range : list[WeightRangeItem] | None
Inherited members
class FontRole (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class FontRole(RootModel[str | FontRole1]): root: Annotated[ str | FontRole1, Field( description='A font role entry. Either a CSS font-family string (simple) or a structured object with family name and font files (rich).' ), ] 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[str, FontRole1]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str | FontRole1
class FontRole1 (**data: Any)-
Expand source code
class FontRole1(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) family: Annotated[str, Field(description="CSS font-family name (e.g., 'Brand Sans')")] files: Annotated[ list[FontFile] | None, Field(description='Font files for different weights and styles', max_length=36), ] = None opentype_features: Annotated[ list[OpentypeFeature] | None, Field( description="OpenType feature tags to enable (e.g., ['ss01', 'tnum', 'cv01']). These are four-character tags per the OpenType spec.", max_length=20, ), ] = None fallbacks: Annotated[ list[Fallback] | None, Field( description="Ordered fallback font-family names for when the primary font is unavailable or does not support the required script (e.g., ['Noto Sans Arabic', 'Noto Sans SC', 'sans-serif'])", max_length=10, ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var fallbacks : list[Fallback] | Nonevar family : strvar files : list[FontFile] | Nonevar model_configvar opentype_features : list[OpentypeFeature] | None
Inherited members
class Fonts (**data: Any)-
Expand source code
class Fonts(AdCPBaseModel): primary: Annotated[FontRole | None, Field(description='Primary font family')] = None secondary: Annotated[FontRole | None, Field(description='Secondary font family')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar primary : FontRole | Nonevar secondary : FontRole | None
Inherited members
class Framing (**data: Any)-
Expand source code
class Framing(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) subject_position: Annotated[ str | None, Field( description="Where the subject sits in frame (e.g., 'center', 'center-left', 'rule-of-thirds')" ), ] = None crop_style: Annotated[ str | None, Field( description="Cropping convention (e.g., 'waist-up', 'full-body', 'close-up', 'wide')" ), ] = None perspective: Annotated[ str | None, Field(description="Camera perspective (e.g., 'eye-level', 'overhead', 'low-angle')"), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var crop_style : str | Nonevar model_configvar perspective : str | Nonevar subject_position : str | None
Inherited members
class GradientStyle (*args, **kwds)-
Expand source code
class GradientStyle(Enum): linear = 'linear' radial = 'radial' conic = 'conic' none = 'none'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var conicvar linearvar nonevar radial
class GraphicElement (**data: Any)-
Expand source code
class GraphicElement(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[ str, Field( description="Element name (e.g., 'Paper Tear', 'Brand Watermark', 'Section Divider')" ), ] type: Annotated[Type1 | None, Field(description='Element type')] = None description: Annotated[str | None, Field(description='How the element is used in layouts')] = ( None ) orientation: Annotated[ Orientation1 | None, Field(description='Preferred orientation when used in layouts') ] = None colors: Annotated[ list[HexColor] | None, Field(description='Colors this element may appear in') ] = None max_per_layout: Annotated[int | None, Field(description='Maximum instances per layout')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var colors : list[HexColor] | Nonevar description : str | Nonevar max_per_layout : int | Nonevar model_configvar name : strvar orientation : Orientation1 | Nonevar type : Type1 | None
Inherited members
class GraphicStyle (**data: Any)-
Expand source code
class GraphicStyle(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) style_type: Annotated[StyleType | None, Field(description='Primary graphic style')] = None stroke_style: Annotated[StrokeStyle | None, Field(description='Stroke end/join style')] = None stroke_weight: Annotated[ str | None, Field(description="Stroke weight (e.g., '2px', 'thin', 'bold')") ] = None corner_radius: Annotated[ str | None, Field( description="Default corner radius for graphic and illustration elements (e.g., '12px', '8px', 'sharp'). For UI component radii (buttons, cards, inputs), see visual_guidelines.border_radius." ), ] = None tags: Annotated[list[str] | None, Field(description='Additional style descriptors')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var corner_radius : str | Nonevar model_configvar stroke_style : StrokeStyle | Nonevar stroke_weight : str | Nonevar style_type : StyleType | None
Inherited members
class HexColor (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class HexColor(RootModel[str]): root: Annotated[str, Field(description='A single hex color value', pattern='^#[0-9A-Fa-f]{6}$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class House (**data: Any)-
Expand source code
class House(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) domain: Annotated[Domain, Field(description="The house's domain where brand.json is hosted")] name: Annotated[str, Field(description='Primary display name of the house', min_length=1)] names: Annotated[ list[LocalizedName] | None, Field(description='Localized house names including legal name, stock symbol, etc.'), ] = None architecture: Annotated[ Architecture | None, Field( description='Brand architecture model: branded_house (Google), house_of_brands (P&G), hybrid (Nike)' ), ] = None agents: Annotated[ Agents | None, Field( description='House-level agents that apply to all brands unless overridden at the brand level' ), ] = None data_subject_contestation: Annotated[ DataSubjectContestation | None, Field( description='House-level fallback contestation contact. Governance agents resolve in order: brand.data_subject_contestation → house.data_subject_contestation → missing (critical finding when human review required).' ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var agents : Agents | Nonevar architecture : Architecture | Nonevar data_subject_contestation : DataSubjectContestation | Nonevar domain : Domainvar model_configvar name : strvar names : list[LocalizedName] | None
Inherited members
class Iconography (**data: Any)-
Expand source code
class Iconography(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) style: Annotated[Style1 | None, Field(description='Icon rendering style')] = None stroke_weight: Annotated[ str | None, Field(description="Icon stroke weight (e.g., '2px', '1.5px')") ] = None corner_style: Annotated[ CornerStyle | None, Field(description='Corner style for icon paths') ] = None usage: Annotated[Usage1 | None, Field(description='Icon usage rules')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var corner_style : CornerStyle | Nonevar model_configvar stroke_weight : str | Nonevar style : Style1 | Nonevar usage : Usage1 | None
Inherited members
class KellerType (*args, **kwds)-
Expand source code
class KellerType(Enum): master = 'master' sub_brand = 'sub_brand' endorsed = 'endorsed' independent = 'independent'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var endorsedvar independentvar mastervar sub_brand
class LocalizedName (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class LocalizedName(RootModel[dict[str, str]]): root: Annotated[dict[str, str], Field(min_length=1)]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[dict[str, str]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : dict[str, str]
class Logo (**data: Any)-
Expand source code
class Logo(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) url: Annotated[AnyUrl, Field(description='URL to the logo asset')] orientation: Annotated[ Orientation | None, Field( description='Logo aspect ratio orientation. square: ~1:1, horizontal: wide, vertical: tall, stacked: vertically arranged elements' ), ] = None background: Annotated[ Background | None, Field( description='Background compatibility. dark-bg: use on dark backgrounds, light-bg: use on light backgrounds, transparent-bg: has transparent background' ), ] = None variant: Annotated[ Variant | None, Field( description='Logo variant type. primary: main logo, secondary: alternative, icon: symbol only, wordmark: text only, full-lockup: complete logo' ), ] = None tags: Annotated[ list[str] | None, Field( description='Additional semantic tags for custom categorization beyond the standard orientation, background, and variant fields' ), ] = None usage: Annotated[ str | None, Field( description="Human-readable description of when to use this logo variant (e.g., 'Primary logo for use on light backgrounds')" ), ] = None width: Annotated[int | None, Field(description='Width in pixels')] = None height: Annotated[int | None, Field(description='Height in pixels')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var background : Background | Nonevar height : int | Nonevar model_configvar orientation : Orientation | Nonevar url : pydantic.networks.AnyUrlvar usage : str | Nonevar variant : Variant | Nonevar width : int | None
Inherited members
class LogoPlacement (**data: Any)-
Expand source code
class LogoPlacement(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) preferred_position: Annotated[ PreferredPosition | None, Field(description='Preferred logo position in layouts') ] = None min_clear_space: Annotated[ str | None, Field( description="Minimum clear space around the logo, expressed as a multiple of logo height (e.g., '0.5x', '1x') or fixed value (e.g., '16px')" ), ] = None min_height: Annotated[ str | None, Field(description="Minimum logo height to maintain legibility (e.g., '40px', '24px')"), ] = None background_contrast: Annotated[ BackgroundContrast | None, Field(description='Permitted background contrast behind logo') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var background_contrast : BackgroundContrast | Nonevar min_clear_space : str | Nonevar min_height : str | Nonevar model_configvar preferred_position : PreferredPosition | None
Inherited members
class MotionGuidelines (**data: Any)-
Expand source code
class MotionGuidelines(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) transition_style: Annotated[ TransitionStyle | None, Field(description='Primary transition style between scenes') ] = None animation_speed: Annotated[ AnimationSpeed | None, Field(description='Overall animation pacing') ] = None easing: Annotated[ str | None, Field(description="Default easing function (e.g., 'ease-in-out', 'spring', 'linear')"), ] = None text_entrance: Annotated[ TextEntrance | None, Field(description='How text enters the frame') ] = None pacing: Annotated[Pacing | None, Field(description='Overall editing rhythm')] = None kinetic_typography: Annotated[ bool | None, Field(description='Whether animated/kinetic typography is allowed') ] = None tags: Annotated[list[str] | None, Field(description='Additional motion style descriptors')] = ( None )Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var animation_speed : AnimationSpeed | Nonevar easing : str | Nonevar kinetic_typography : bool | Nonevar model_configvar pacing : Pacing | Nonevar text_entrance : TextEntrance | Nonevar transition_style : TransitionStyle | None
Inherited members
class OpentypeFeature (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class OpentypeFeature(RootModel[str]): root: Annotated[str, Field(pattern='^[a-z0-9]{4}$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class Orientation (*args, **kwds)-
Expand source code
class Orientation(Enum): square = 'square' horizontal = 'horizontal' vertical = 'vertical' stacked = 'stacked'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var horizontalvar squarevar stackedvar vertical
class Orientation1 (*args, **kwds)-
Expand source code
class Orientation1(Enum): horizontal = 'horizontal' vertical = 'vertical' any = 'any'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var anyvar horizontalvar vertical
class Overlays (**data: Any)-
Expand source code
class Overlays(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) gradient_style: Annotated[ GradientStyle | None, Field(description='Gradient type for overlays') ] = None gradient_direction: Annotated[ str | None, Field(description="Gradient direction (e.g., '45deg', 'to-bottom-right')") ] = None opacity: Annotated[str | None, Field(description="Overlay opacity (e.g., '70%')")] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var gradient_direction : str | Nonevar gradient_style : GradientStyle | Nonevar model_configvar opacity : str | None
Inherited members
class Pacing (*args, **kwds)-
Expand source code
class Pacing(Enum): lingering = 'lingering' moderate = 'moderate' fast_cuts = 'fast_cuts'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var fast_cutsvar lingeringvar moderate
class Palette (**data: Any)-
Expand source code
class Palette(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(description='Palette name')] colors: Annotated[ dict[str, HexColor], Field(description='Map of role names to hex color values') ]Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var colors : dict[str, HexColor]var model_configvar name : str
Inherited members
class People (**data: Any)-
Expand source code
class People(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) age_range: Annotated[str | None, Field(description="Target age range (e.g., '20-35')")] = None diversity: Annotated[ str | None, Field(description="Diversity representation (e.g., 'mixed', 'varied')") ] = None mood: Annotated[ list[str] | None, Field(description="Mood descriptors (e.g., ['confident', 'relaxed'])") ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var age_range : str | Nonevar diversity : str | Nonevar model_configvar mood : list[str] | None
Inherited members
class PhotographyStyle (**data: Any)-
Expand source code
class PhotographyStyle(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) realism: Annotated[Realism | None, Field(description='Level of photographic realism')] = None lighting: Annotated[ str | None, Field( description="Lighting style (e.g., 'soft daylight', 'studio', 'golden hour', 'high-key', 'low-key')" ), ] = None color_temperature: Annotated[ ColorTemperature | None, Field(description='Overall color temperature of photography') ] = None contrast: Annotated[Contrast | None, Field(description='Contrast level in photography')] = None depth_of_field: Annotated[ DepthOfField | None, Field( description='Depth of field preference. shallow: blurred background with subject isolation, deep: everything in focus' ), ] = None subject: Annotated[Subject | None, Field(description='Subject matter guidelines')] = None framing: Annotated[Framing | None, Field(description='Camera framing rules')] = None preferred_aspect_ratios: Annotated[ list[PreferredAspectRatio] | None, Field( description="Preferred aspect ratios for brand photography (e.g., '16:9', '4:5', '1:1')" ), ] = None tags: Annotated[list[str] | None, Field(description='Additional style descriptors')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var color_temperature : ColorTemperature | Nonevar contrast : Contrast | Nonevar depth_of_field : DepthOfField | Nonevar framing : Framing | Nonevar lighting : str | Nonevar model_configvar preferred_aspect_ratios : list[PreferredAspectRatio] | Nonevar realism : Realism | Nonevar subject : Subject | None
Inherited members
class PreferredAspectRatio (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class PreferredAspectRatio(RootModel[str]): root: Annotated[str, Field(pattern='^\\d+:\\d+$')]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[str]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : str
class PreferredPosition (*args, **kwds)-
Expand source code
class PreferredPosition(Enum): top_left = 'top-left' top_center = 'top-center' top_right = 'top-right' bottom_left = 'bottom-left' bottom_center = 'bottom-center' bottom_right = 'bottom-right' center = 'center'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var bottom_centervar bottom_leftvar bottom_rightvar centervar top_centervar top_leftvar top_right
class ProductCatalog (**data: Any)-
Expand source code
class ProductCatalog(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) feed_url: Annotated[AnyUrl, Field(description='URL to product catalog feed')] feed_format: Annotated[FeedFormat | None, Field(description='Format of the product feed')] = ( None ) categories: Annotated[ list[str] | None, Field(description='Product categories available in the catalog') ] = None last_updated: Annotated[ AwareDatetime | None, Field(description='When the product catalog was last updated') ] = None update_frequency: Annotated[ UpdateFrequency | None, Field(description='How frequently the product catalog is updated') ] = None agentic_checkout: Annotated[ AgenticCheckout | None, Field(description='Agentic checkout endpoint configuration') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var agentic_checkout : AgenticCheckout | Nonevar categories : list[str] | Nonevar feed_format : FeedFormat | Nonevar feed_url : pydantic.networks.AnyUrlvar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar update_frequency : UpdateFrequency | None
Inherited members
class ProductFocus (*args, **kwds)-
Expand source code
class ProductFocus(Enum): in_use = 'in-use' isolated = 'isolated' lifestyle = 'lifestyle' detail = 'detail'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var detailvar in_usevar isolatedvar lifestyle
class Property (**data: Any)-
Expand source code
class Property(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) type: Annotated[Type, Field(description='Property type')] identifier: Annotated[ str, Field( description='Property identifier - domain for websites, bundle ID for apps', min_length=1, ), ] store: Annotated[Store | None, Field(description='App store for mobile/CTV apps')] = None region: Annotated[ str | None, Field( description="ISO 3166-1 alpha-2 country code or 'global'", pattern='^([A-Z]{2}|global)$' ), ] = None primary: Annotated[ bool | None, Field(description='Whether this is the primary property for the brand') ] = False relationship: Annotated[ Relationship | None, Field( description="How this brand relates to the property, using the same vocabulary as adagents.json delegation_type. 'owned': the brand owns and operates this property (default). 'direct': the brand is the direct sales path for this property, even if a third party operates the software (e.g., a publisher's in-house ad team using a vendor's tech). 'delegated': the brand manages monetization for this property — they are in charge of ad sales (e.g., Mediavine managing a food blog). 'ad_network': the brand sells this property's inventory as part of a network or exchange — they are a path to the inventory, not the path (e.g., PubMatic as an SSP). For non-owned properties, the publisher confirms the relationship by setting the matching delegation_type on the agent's authorization in their adagents.json." ), ] = Relationship.ownedBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var identifier : strvar model_configvar primary : bool | Nonevar region : str | Nonevar relationship : Relationship | Nonevar store : Store | Nonevar type : Type
Inherited members
class Realism (*args, **kwds)-
Expand source code
class Realism(Enum): natural = 'natural' stylized = 'stylized' hyperreal = 'hyperreal' abstract = 'abstract'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var abstractvar hyperrealvar naturalvar stylized
class Relationship (*args, **kwds)-
Expand source code
class Relationship(Enum): owned = 'owned' direct = 'direct' delegated = 'delegated' ad_network = 'ad_network'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var ad_networkvar delegatedvar directvar owned
class RightsAgent (**data: Any)-
Expand source code
class RightsAgent(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) url: Annotated[AnyUrl, Field(description='Rights agent MCP endpoint URL')] id: Annotated[str, Field(description='Agent identifier', pattern='^[a-z0-9_]+$')] available_uses: Annotated[ list[right_use.RightUse], Field(description='Rights uses available for licensing through this agent', min_length=1), ] right_types: Annotated[ list[right_type.RightType] | None, Field(description='Types of rights available', min_length=1), ] = None countries: Annotated[ list[Country] | None, Field(description='Countries where rights are available (ISO 3166-1 alpha-2)'), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var available_uses : list[RightUse]var countries : list[Country] | Nonevar id : strvar model_configvar right_types : list[RightType] | Nonevar url : pydantic.networks.AnyUrl
Inherited members
class Scale (**data: Any)-
Expand source code
class Scale(AdCPBaseModel): xs: Annotated[str | None, Field(description="Extra small spacing (e.g., '4px')")] = None sm: Annotated[str | None, Field(description="Small spacing (e.g., '8px')")] = None md: Annotated[str | None, Field(description="Medium spacing (e.g., '16px')")] = None lg: Annotated[str | None, Field(description="Large spacing (e.g., '24px')")] = None xl: Annotated[str | None, Field(description="Extra large spacing (e.g., '32px')")] = None field_2xl: Annotated[ str | None, Field(alias='2xl', description="Section-level spacing (e.g., '48px', '64px')") ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var field_2xl : str | Nonevar lg : str | Nonevar md : str | Nonevar model_configvar sm : str | Nonevar xl : str | Nonevar xs : str | None
Inherited members
class ScopeEnum (*args, **kwds)-
Expand source code
class ScopeEnum(Enum): spend_authority = 'spend_authority' delivery_monitor = 'delivery_monitor' brand_safety = 'brand_safety' regulatory_compliance = 'regulatory_compliance'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var brand_safetyvar delivery_monitorvar regulatory_compliance
class Spacing (**data: Any)-
Expand source code
class Spacing(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) unit: Annotated[ str | None, Field( description="Base grid unit this scale was designed from (e.g., '8px', '4px'). Informational — agents should use the named scale values, not compute from this." ), ] = None scale: Annotated[ Scale | None, Field(description='Named spacing scale built from the base unit') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar scale : Scale | Nonevar unit : str | None
Inherited members
class Store (*args, **kwds)-
Expand source code
class Store(Enum): apple = 'apple' google = 'google' amazon = 'amazon' roku = 'roku' samsung = 'samsung' lg = 'lg' other = 'other'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var amazonvar applevar googlevar lgvar othervar rokuvar samsung
class StrokeStyle (*args, **kwds)-
Expand source code
class StrokeStyle(Enum): rounded = 'rounded' square = 'square' mixed = 'mixed' none = 'none'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var mixedvar nonevar roundedvar square
class Style (*args, **kwds)-
Expand source code
class Style(Enum): normal = 'normal' italic = 'italic' oblique = 'oblique'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var italicvar normalvar oblique
class Style1 (*args, **kwds)-
Expand source code
class Style1(Enum): outline = 'outline' filled = 'filled' duotone = 'duotone' flat = 'flat' glyph = 'glyph' hand_drawn = 'hand_drawn'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var duotonevar filledvar flatvar glyphvar hand_drawnvar outline
class Style2 (*args, **kwds)-
Expand source code
class Style2(Enum): none = 'none' subtle_grain = 'subtle_grain' noise = 'noise' paper = 'paper' fabric = 'fabric' concrete = 'concrete'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var concretevar fabricvar noisevar nonevar papervar subtle_grain
class StyleType (*args, **kwds)-
Expand source code
class StyleType(Enum): flat_illustration = 'flat_illustration' geometric = 'geometric' gradient_mesh = 'gradient_mesh' editorial_collage = 'editorial_collage' hand_drawn = 'hand_drawn' minimal_line_art = 'minimal_line_art' field_3d_render = '3d_render' isometric = 'isometric' photographic_composite = 'photographic_composite'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var editorial_collagevar field_3d_rendervar flat_illustrationvar geometricvar gradient_meshvar hand_drawnvar isometricvar minimal_line_artvar photographic_composite
class Subject (**data: Any)-
Expand source code
class Subject(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) people: Annotated[People | None, Field(description='People photography guidelines')] = None product_focus: Annotated[ProductFocus | None, Field(description='How products are shown')] = ( None ) setting: Annotated[ str | None, Field( description="Environmental context for photography (e.g., 'indoor', 'outdoor', 'studio', 'urban', 'nature', 'workplace')" ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar people : People | Nonevar product_focus : ProductFocus | Nonevar setting : str | None
Inherited members
class Tagline (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class Tagline(RootModel[list[LocalizedName]]): root: Annotated[ list[LocalizedName], Field(description='Localized taglines with BCP 47 locale codes', min_length=1), ]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[list[LocalizedName]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : list[LocalizedName]
class TextEntrance (*args, **kwds)-
Expand source code
class TextEntrance(Enum): fade = 'fade' typewriter = 'typewriter' slide_up = 'slide_up' slide_left = 'slide_left' scale = 'scale' none = 'none'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var fadevar nonevar scalevar slide_leftvar slide_upvar typewriter
class TextTransform (*args, **kwds)-
Expand source code
class TextTransform(Enum): none = 'none' uppercase = 'uppercase' lowercase = 'lowercase' capitalize = 'capitalize'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var capitalizevar lowercasevar nonevar uppercase
class Texture (**data: Any)-
Expand source code
class Texture(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) style: Annotated[ Style2 | None, Field(description='Texture style applied to creative assets') ] = None intensity: Annotated[Contrast | None, Field(description='Texture intensity')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var intensity : Contrast | Nonevar model_configvar style : Style2 | None
Inherited members
class Tone (**data: Any)-
Expand source code
class Tone(AdCPBaseModel): voice: Annotated[ str | None, Field( description="High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')" ), ] = None attributes: Annotated[ list[str] | None, Field(description='Personality traits that characterize the brand voice') ] = None dos: Annotated[ list[str] | None, Field(description='Guidance for copy generation - what TO do') ] = None donts: Annotated[ list[str] | None, Field(description='Guardrails to avoid brand violations - what NOT to do') ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var attributes : list[str] | Nonevar donts : list[str] | Nonevar dos : list[str] | Nonevar model_configvar voice : str | None
Inherited members
class Trademark (**data: Any)-
Expand source code
class Trademark(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) registry: str number: str mark: strBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var mark : strvar model_configvar number : strvar registry : str
Inherited members
class TransitionStyle (*args, **kwds)-
Expand source code
class TransitionStyle(Enum): cut = 'cut' dissolve = 'dissolve' slide = 'slide' wipe = 'wipe' zoom = 'zoom' fade = 'fade'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var cutvar dissolvevar fadevar slidevar wipevar zoom
class Type (*args, **kwds)-
Expand source code
class Type(Enum): website = 'website' mobile_app = 'mobile_app' ctv_app = 'ctv_app' desktop_app = 'desktop_app' dooh = 'dooh' podcast = 'podcast' radio = 'radio' streaming_audio = 'streaming_audio'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var ctv_appvar desktop_appvar doohvar mobile_appvar podcastvar radiovar streaming_audiovar website
class Type1 (*args, **kwds)-
Expand source code
class Type1(Enum): border = 'border' divider = 'divider' frame = 'frame' watermark = 'watermark' pattern = 'pattern' texture_overlay = 'texture_overlay' decorative = 'decorative'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var bordervar decorativevar dividervar framevar patternvar texture_overlayvar watermark
class Type2 (*args, **kwds)-
Expand source code
class Type2(Enum): icon_set = 'icon_set' illustration_system = 'illustration_system' image_library = 'image_library' video_library = 'video_library' template_library = 'template_library'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var icon_setvar illustration_systemvar image_libraryvar template_libraryvar video_library
class TypeScale (**data: Any)-
Expand source code
class TypeScale(AdCPBaseModel): base_width: Annotated[ str | None, Field( description="Reference canvas width these sizes were designed for (e.g., '1080px'). Generative systems should scale proportionally for other canvas sizes." ), ] = None heading: TypeScaleEntry | None = None subheading: TypeScaleEntry | None = None body: TypeScaleEntry | None = None caption: TypeScaleEntry | None = None cta: TypeScaleEntry | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var base_width : str | Nonevar body : TypeScaleEntry | Nonevar caption : TypeScaleEntry | Nonevar cta : TypeScaleEntry | Nonevar heading : TypeScaleEntry | Nonevar model_configvar subheading : TypeScaleEntry | None
Inherited members
class TypeScaleEntry (**data: Any)-
Expand source code
class TypeScaleEntry(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) font: Annotated[ str | None, Field( description="Font reference. Use a key from the fonts object (e.g., 'primary', 'secondary') to reference a defined font role, or a literal CSS font-family string as a fallback." ), ] = None size: Annotated[str | None, Field(description="Font size (e.g., '48px', '2rem')")] = None weight: Annotated[str | None, Field(description="Font weight (e.g., '700', 'bold')")] = None line_height: Annotated[str | None, Field(description="Line height (e.g., '1.2', '56px')")] = ( None ) letter_spacing: Annotated[ str | None, Field(description="Letter spacing (e.g., '-0.02em', '0.5px')") ] = None text_transform: Annotated[TextTransform | None, Field(description='Text transformation')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var font : str | Nonevar letter_spacing : str | Nonevar line_height : str | Nonevar model_configvar size : str | Nonevar text_transform : TextTransform | Nonevar weight : str | None
Inherited members
class TypesAllowedEnum (*args, **kwds)-
Expand source code
class TypesAllowedEnum(Enum): solid_color = 'solid_color' gradient = 'gradient' blurred_photo = 'blurred_photo' image = 'image' video = 'video' pattern = 'pattern' transparent = 'transparent'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var blurred_photovar gradientvar imagevar patternvar solid_colorvar transparentvar video
class UpdateFrequency (*args, **kwds)-
Expand source code
class UpdateFrequency(Enum): realtime = 'realtime' hourly = 'hourly' daily = 'daily' weekly = 'weekly'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var dailyvar hourlyvar realtimevar weekly
class Usage (**data: Any)-
Expand source code
class Usage(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) max_per_layout: Annotated[ int | None, Field(description='Maximum distinct shapes per layout') ] = None overlap_allowed: Annotated[bool | None, Field(description='Whether shapes may overlap')] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var max_per_layout : int | Nonevar model_configvar overlap_allowed : bool | None
Inherited members
class Usage1 (**data: Any)-
Expand source code
class Usage1(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) max_per_frame: Annotated[int | None, Field(description='Maximum icons per creative frame')] = ( None ) size_ratio: Annotated[ str | None, Field(description="Icon-to-layout size ratio (e.g., '1:8')") ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var max_per_frame : int | Nonevar model_configvar size_ratio : str | None
Inherited members
class Variant (*args, **kwds)-
Expand source code
class Variant(Enum): primary = 'primary' secondary = 'secondary' icon = 'icon' wordmark = 'wordmark' full_lockup = 'full-lockup'Create a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3Access them by:
- attribute access::
>>> Color.RED <Color.RED: 1>- value lookup:
>>> Color(1) <Color.RED: 1>- name lookup:
>>> Color['RED'] <Color.RED: 1>Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
Ancestors
- enum.Enum
Class variables
var full_lockupvar iconvar primaryvar secondaryvar wordmark
class VisualGuidelines (**data: Any)-
Expand source code
class VisualGuidelines(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) photography: PhotographyStyle | None = None graphic_style: GraphicStyle | None = None shapes: BrandShapes | None = None iconography: Iconography | None = None composition: CompositionRules | None = None border_radius: BorderRadius | None = None elevation: Elevation | None = None spacing: Spacing | None = None graphic_elements: Annotated[ list[GraphicElement] | None, Field( description='Reusable decorative elements that are part of the brand visual identity (e.g., torn paper edges, watermarks, dividers)' ), ] = None motion: MotionGuidelines | None = None logo_placement: LogoPlacement | None = None colorways: Annotated[ list[Colorway] | None, Field(description='Named color pairings for consistent foreground/background combinations'), ] = None type_scale: Annotated[ TypeScale | None, Field( description='Typography scale defining sizes and weights for different text roles. When sizes are in px, use base_width to indicate the reference canvas.' ), ] = None asset_libraries: Annotated[ list[AssetLibrary] | None, Field( description='References to managed asset libraries (icon sets, illustration systems, image collections). URLs are intended for human access; agent-facing DAM integration is under investigation.' ), ] = None restrictions: Annotated[ list[str] | None, Field( description="Visual prohibitions and guardrails (e.g., 'Never use black backgrounds', 'Do not crop the logo', 'No stock photography of people on phones')" ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var asset_libraries : list[AssetLibrary] | Nonevar border_radius : BorderRadius | Nonevar colorways : list[Colorway] | Nonevar composition : CompositionRules | Nonevar elevation : Elevation | Nonevar graphic_elements : list[GraphicElement] | Nonevar graphic_style : GraphicStyle | Nonevar iconography : Iconography | Nonevar logo_placement : LogoPlacement | Nonevar model_configvar motion : MotionGuidelines | Nonevar photography : PhotographyStyle | Nonevar restrictions : list[str] | Nonevar shapes : BrandShapes | Nonevar spacing : Spacing | Nonevar type_scale : TypeScale | None
Inherited members
class VoiceSynthesis (**data: Any)-
Expand source code
class VoiceSynthesis(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) provider: str | None = None voice_id: str | None = None settings: dict[str, Any] | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config. Consumers who want strict validation can override withextra='forbid'.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar provider : str | Nonevar settings : dict[str, typing.Any] | Nonevar voice_id : str | None
Inherited members
class WeightRangeItem (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class WeightRangeItem(RootModel[int]): root: Annotated[int, Field(ge=100, le=900)]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[int]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : int