Module adcp.types.domains.media_buy.request_proposals_response
Classes
class IncompleteItem (**data: Any)-
Expand source code
class IncompleteItem(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) scope: Scope description: Annotated[str, Field(min_length=1)] estimated_wait: duration.Duration | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
Class variables
var description : strvar estimated_wait : Duration | Nonevar model_configvar scope : Scope
Inherited members
class IncompleteItem5 (**data: Any)-
Expand source code
class IncompleteItem5(IncompleteItem): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- IncompleteItem
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class IncompleteItem6 (**data: Any)-
Expand source code
class IncompleteItem6(IncompleteItem): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- IncompleteItem
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class IncompleteItem7 (**data: Any)-
Expand source code
class IncompleteItem7(IncompleteItem): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- IncompleteItem
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class Loss (*args, **kwds)-
Expand source code
class Loss(StrEnum): feed_version_not_atomic = 'feed_version_not_atomic' pricing_version_not_atomic = 'pricing_version_not_atomic' mutation_idempotency_not_guaranteed = 'mutation_idempotency_not_guaranteed'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var feed_version_not_atomicvar mutation_idempotency_not_guaranteedvar pricing_version_not_atomic
class Losses (**data: Any)-
Expand source code
class Losses(AdCPBaseModel): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class Outcome (*args, **kwds)-
Expand source code
class Outcome(StrEnum): proposed = 'proposed' products_available = 'products_available' rejected = 'rejected'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var products_availablevar proposedvar rejected
class ProductId (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class ProductId(Suggestion): passA
strgenerated from a JSON Schema string root.Ancestors
- Suggestion
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class Proposal (**data: Any)-
Expand source code
class Proposal(CanonicalProposal): proposal_status: Annotated[ Literal['draft'], Field( description='draft is indicative and unreserved; committed has firm terms with inventory reserved until expires_at; accepted is the historical snapshot attached to a MediaBuy.', title='Proposal Status', ), ] = 'draft' expires_at: Annotated[ AwareDatetime, Field( description='For a draft, the indicative-terms freshness deadline. For a committed proposal, the inventory-hold deadline.' ), ] proposal_kind: Any commercial_terms: Any terms_digest: AnyBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- CanonicalProposal
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var commercial_terms : Anyvar expires_at : pydantic.types.AwareDatetimevar model_configvar proposal_kind : Anyvar proposal_status : Literal['draft']var terms_digest : Any
Inherited members
class ProposalStatus (*args, **kwds)-
Expand source code
class ProposalStatus(StrEnum): draft = 'draft' committed = 'committed' accepted = 'accepted'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var acceptedvar committedvar draft
class PurchaseContinuation (**data: Any)-
Expand source code
class PurchaseContinuation(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) kind: Literal['listed_purchase'] = 'listed_purchase' product_ids: Annotated[ list[ProductId], Field( description='Exact products the coordinator promoted and re-read through account-scoped list_products before returning this result. The set MUST match products[].product_id.', min_length=1, ), ] cache_scope: Literal['account'] = 'account' feed_version: Annotated[ str, Field( description='Real seller-issued account-scoped feed fence obtained by re-reading the promoted products through list_products.', min_length=1, ), ] pricing_version: Annotated[ str | None, Field( description='Real seller-issued pricing fence from the same account-scoped list_products response, when the seller versions pricing independently.', min_length=1, ), ] = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
Class variables
var cache_scope : Literal['account']var feed_version : strvar kind : Literal['listed_purchase']var model_configvar pricing_version : str | Nonevar product_ids : list[ProductId]
Inherited members
class PurchaseContinuation1 (**data: Any)-
Expand source code
class PurchaseContinuation1(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) kind: Literal['legacy_create'] = 'legacy_create' continuation_token: Annotated[ str, Field( description='Opaque, short-lived coordinator token bound to the caller principal, account, and complete observed product/pricing payload. It is not a seller-issued feed fence.', min_length=16, ), ] continuation_expires_at: Annotated[ AwareDatetime, Field(description='Absolute expiry of the single-use compatibility continuation.'), ] source_adcp_version: Annotated[ SourceAdcpVersion, Field( description='Established AdCP version actually negotiated with the peer. This provenance is required; the coordinator MUST NOT infer stronger guarantees from the label.' ), ] product_ids: Annotated[ list[ProductId], Field( description='Exact products bound to this continuation. A follow-up MUST select a non-empty subset and MUST NOT substitute an ID from another discovery result.', min_length=1, ), ] losses: Annotated[ list[Loss] | Losses, Field( description='Guarantees that the established create_media_buy continuation cannot provide. The coordinator MUST fail before mutation unless the caller explicitly accepts every listed loss.', min_length=2, ), ] requires_explicit_acceptance: Literal[True]Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
Class variables
var continuation_expires_at : pydantic.types.AwareDatetimevar continuation_token : strvar kind : Literal['legacy_create']var losses : list[Loss] | Lossesvar model_configvar product_ids : list[ProductId]var requires_explicit_acceptance : Literal[True]var source_adcp_version : SourceAdcpVersion
Inherited members
class PurchaseContinuation2 (**data: Any)-
Expand source code
class PurchaseContinuation2(PurchaseContinuation): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class PurchaseContinuation3 (**data: Any)-
Expand source code
class PurchaseContinuation3(PurchaseContinuation1): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation1
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class PurchaseContinuation4 (**data: Any)-
Expand source code
class PurchaseContinuation4(PurchaseContinuation): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class PurchaseContinuation5 (**data: Any)-
Expand source code
class PurchaseContinuation5(PurchaseContinuation1): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation1
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class PurchaseContinuation6 (**data: Any)-
Expand source code
class PurchaseContinuation6(PurchaseContinuation): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class PurchaseContinuation7 (**data: Any)-
Expand source code
class PurchaseContinuation7(PurchaseContinuation1): passBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- PurchaseContinuation1
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class RequestProposalsResponse1 (**data: Any)-
Expand source code
class RequestProposalsResponse1(AdcpResponse, AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) adcp_version: Annotated[ str | None, Field( description='Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer\'s release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release\'s schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.', examples=['3.0', '3.1', '3.1-beta', '3.1-rc.1'], pattern='^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$', ), ] = None outcome: Literal['proposed'] = 'proposed' reason: Annotated[str | None, Field(min_length=1)] = None suggestions: Annotated[list[Suggestion] | None, Field(min_length=1)] = None proposals: Annotated[list[Proposal], Field(min_length=1)] products: Annotated[list[canonical_product.CanonicalProduct], Field(min_length=1)] incomplete: Annotated[ list[IncompleteItem] | None, Field( description='Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.', min_length=1, ), ] = None purchase_continuation: Annotated[ PurchaseContinuation | PurchaseContinuation1 | None, Field( deprecated=True, description='Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.', ), ] = None targeting_resolution: Annotated[ get_products_targeting_resolution.ProductDiscoveryTargetingResolution | None, Field( description='Response-level confirmation of structured targeting interpreted from explicit hard requirements in the brief. Sellers MUST emit this when that interpretation materially affects eligibility, pricing, or forecasting; otherwise it remains a best practice. Product-specific changes to explicit criteria.targeting_overlay values remain on Product.targeting_resolution.' ), ] = None status: Literal['completed'] = 'completed' task_id: Annotated[str | None, Field(min_length=1)] = None message: Annotated[str | None, Field(max_length=2000)] = None errors: list[error.Error] | None = None context: context_1.ContextObject | None = None ext: ext_1.ExtensionObject | None = None replayed: Literal[True] | None = NoneThe response message of a task in the pinned bundle's task registry.
A consumer holding one can route on task state, pick up an async
task_id, split envelope from payload and log uniformly, before knowing which tool answered. Which makes one generic poll-to-terminal loop possible for all 77 tasks, where today each arm has no common type at all.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
- AdcpResponse
- adcp.types.base._AdcpMessage
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var adcp_version : str | Nonevar context : ContextObject | Nonevar errors : list[Error] | Nonevar ext : ExtensionObject | Nonevar incomplete : list[IncompleteItem] | Nonevar message : str | Nonevar model_configvar outcome : Literal['proposed']var products : list[CanonicalProduct]var proposals : list[Proposal]var purchase_continuation : PurchaseContinuation | PurchaseContinuation1 | Nonevar reason : str | Nonevar replayed : Literal[True] | Nonevar status : Literal['completed']var suggestions : list[Suggestion] | Nonevar targeting_resolution : ProductDiscoveryTargetingResolution | Nonevar task_id : str | None
Inherited members
class RequestProposalsResponse2 (**data: Any)-
Expand source code
class RequestProposalsResponse2(AdcpResponse, AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) adcp_version: Annotated[ str | None, Field( description='Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer\'s release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release\'s schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.', examples=['3.0', '3.1', '3.1-beta', '3.1-rc.1'], pattern='^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$', ), ] = None outcome: Literal['products_available'] = 'products_available' reason: Annotated[str | None, Field(min_length=1)] = None suggestions: Annotated[list[Suggestion] | None, Field(min_length=1)] = None proposals: Annotated[list[Proposal] | None, Field(min_length=1)] = None products: Annotated[list[canonical_product.CanonicalProduct], Field(min_length=1)] incomplete: Annotated[ list[IncompleteItem5] | None, Field( description='Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.', min_length=1, ), ] = None purchase_continuation: Annotated[ PurchaseContinuation2 | PurchaseContinuation3, Field( deprecated=True, description='Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.', ), ] targeting_resolution: Annotated[ get_products_targeting_resolution.ProductDiscoveryTargetingResolution | None, Field( description='Response-level confirmation of structured targeting interpreted from explicit hard requirements in the brief. Sellers MUST emit this when that interpretation materially affects eligibility, pricing, or forecasting; otherwise it remains a best practice. Product-specific changes to explicit criteria.targeting_overlay values remain on Product.targeting_resolution.' ), ] = None status: Literal['completed'] = 'completed' task_id: Annotated[str | None, Field(min_length=1)] = None message: Annotated[str | None, Field(max_length=2000)] = None errors: list[error.Error] | None = None context: context_1.ContextObject | None = None ext: ext_1.ExtensionObject | None = None replayed: Literal[True] | None = NoneThe response message of a task in the pinned bundle's task registry.
A consumer holding one can route on task state, pick up an async
task_id, split envelope from payload and log uniformly, before knowing which tool answered. Which makes one generic poll-to-terminal loop possible for all 77 tasks, where today each arm has no common type at all.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
- AdcpResponse
- adcp.types.base._AdcpMessage
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var adcp_version : str | Nonevar context : ContextObject | Nonevar errors : list[Error] | Nonevar ext : ExtensionObject | Nonevar incomplete : list[IncompleteItem5] | Nonevar message : str | Nonevar model_configvar outcome : Literal['products_available']var products : list[CanonicalProduct]var proposals : list[Proposal] | Nonevar purchase_continuation : PurchaseContinuation2 | PurchaseContinuation3var reason : str | Nonevar replayed : Literal[True] | Nonevar status : Literal['completed']var suggestions : list[Suggestion] | Nonevar targeting_resolution : ProductDiscoveryTargetingResolution | Nonevar task_id : str | None
Inherited members
class RequestProposalsResponse3 (**data: Any)-
Expand source code
class RequestProposalsResponse3(AdcpResponse, AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) adcp_version: Annotated[ str | None, Field( description='Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer\'s release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release\'s schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.', examples=['3.0', '3.1', '3.1-beta', '3.1-rc.1'], pattern='^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$', ), ] = None outcome: Literal['rejected'] = 'rejected' reason: Annotated[str, Field(min_length=1)] suggestions: Annotated[list[Suggestion] | None, Field(min_length=1)] = None proposals: Annotated[list[Proposal] | None, Field(min_length=1)] = None products: Annotated[list[canonical_product.CanonicalProduct] | None, Field(min_length=1)] = None incomplete: Annotated[ list[IncompleteItem6] | None, Field( description='Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.', min_length=1, ), ] = None purchase_continuation: Annotated[ PurchaseContinuation4 | PurchaseContinuation5 | None, Field( deprecated=True, description='Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.', ), ] = None targeting_resolution: Annotated[ get_products_targeting_resolution.ProductDiscoveryTargetingResolution | None, Field( description='Response-level confirmation of structured targeting interpreted from explicit hard requirements in the brief. Sellers MUST emit this when that interpretation materially affects eligibility, pricing, or forecasting; otherwise it remains a best practice. Product-specific changes to explicit criteria.targeting_overlay values remain on Product.targeting_resolution.' ), ] = None status: Literal['completed'] = 'completed' task_id: Annotated[str | None, Field(min_length=1)] = None message: Annotated[str | None, Field(max_length=2000)] = None errors: list[error.Error] | None = None context: context_1.ContextObject | None = None ext: ext_1.ExtensionObject | None = None replayed: Literal[True] | None = NoneThe response message of a task in the pinned bundle's task registry.
A consumer holding one can route on task state, pick up an async
task_id, split envelope from payload and log uniformly, before knowing which tool answered. Which makes one generic poll-to-terminal loop possible for all 77 tasks, where today each arm has no common type at all.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
- AdcpResponse
- adcp.types.base._AdcpMessage
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var adcp_version : str | Nonevar context : ContextObject | Nonevar errors : list[Error] | Nonevar ext : ExtensionObject | Nonevar incomplete : list[IncompleteItem6] | Nonevar message : str | Nonevar model_configvar outcome : Literal['rejected']var products : list[CanonicalProduct] | Nonevar proposals : list[Proposal] | Nonevar purchase_continuation : PurchaseContinuation4 | PurchaseContinuation5 | Nonevar reason : strvar replayed : Literal[True] | Nonevar status : Literal['completed']var suggestions : list[Suggestion] | Nonevar targeting_resolution : ProductDiscoveryTargetingResolution | Nonevar task_id : str | None
Inherited members
class RequestProposalsResponse4 (**data: Any)-
Expand source code
class RequestProposalsResponse4(AdcpResponse, CompactTaskSubmitted): model_config = ConfigDict( extra='forbid', ) adcp_version: Annotated[ str | None, Field( description='Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer\'s release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release\'s schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.', examples=['3.0', '3.1', '3.1-beta', '3.1-rc.1'], pattern='^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$', ), ] = None outcome: Outcome | None = None reason: Annotated[str | None, Field(min_length=1)] = None suggestions: Annotated[list[Suggestion] | None, Field(min_length=1)] = None proposals: Annotated[list[Proposal] | None, Field(min_length=1)] = None products: Annotated[list[canonical_product.CanonicalProduct] | None, Field(min_length=1)] = None incomplete: Annotated[ list[IncompleteItem7] | None, Field( description='Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.', min_length=1, ), ] = None purchase_continuation: Annotated[ PurchaseContinuation6 | PurchaseContinuation7 | None, Field( deprecated=True, description='Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.', ), ] = None targeting_resolution: Annotated[ get_products_targeting_resolution.ProductDiscoveryTargetingResolution | None, Field( description='Response-level confirmation of structured targeting interpreted from explicit hard requirements in the brief. Sellers MUST emit this when that interpretation materially affects eligibility, pricing, or forecasting; otherwise it remains a best practice. Product-specific changes to explicit criteria.targeting_overlay values remain on Product.targeting_resolution.' ), ] = None status: Status | None = None task_id: Annotated[str | None, Field(min_length=1)] = None message: Annotated[str | None, Field(max_length=2000)] = None errors: list[error.Error] | None = None context: context_1.ContextObject | None = None ext: ext_1.ExtensionObject | None = None replayed: Literal[True] | None = NoneThe response message of a task in the pinned bundle's task registry.
A consumer holding one can route on task state, pick up an async
task_id, split envelope from payload and log uniformly, before knowing which tool answered. Which makes one generic poll-to-terminal loop possible for all 77 tasks, where today each arm has no common type at all.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
- AdcpResponse
- adcp.types.base._AdcpMessage
- CompactTaskSubmitted
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var adcp_version : str | Nonevar context : ContextObject | Nonevar errors : list[Error] | Nonevar ext : ExtensionObject | Nonevar incomplete : list[IncompleteItem7] | Nonevar message : str | Nonevar model_configvar outcome : Outcome | Nonevar products : list[CanonicalProduct] | Nonevar proposals : list[Proposal] | Nonevar purchase_continuation : PurchaseContinuation6 | PurchaseContinuation7 | Nonevar reason : str | Nonevar replayed : Literal[True] | Nonevar status : Status | Nonevar suggestions : list[Suggestion] | Nonevar targeting_resolution : ProductDiscoveryTargetingResolution | Nonevar task_id : str | None
Inherited members
class Scope (*args, **kwds)-
Expand source code
class Scope(StrEnum): products = 'products' pricing = 'pricing' forecast = 'forecast' proposals = 'proposals' wholesale_feed = 'wholesale_feed'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var forecastvar pricingvar productsvar proposalsvar wholesale_feed
class SourceAdcpVersion (*args, **kwds)-
Expand source code
class SourceAdcpVersion(StrEnum): field_2_5 = '2.5' field_3_0 = '3.0' field_3_1 = '3.1'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var field_2_5var field_3_0var field_3_1
class Status (*args, **kwds)-
Expand source code
class Status(StrEnum): completed = 'completed' submitted = 'submitted'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var completedvar submitted
class Suggestion (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class Suggestion(ScalarStr): __slots__ = () _constraints = {'min_length': 1}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
Subclasses