Module adcp.types.domains.media_buy.proposal_budget_constraint
Classes
class ProposalBudgetConstraint (**data: Any)-
Expand source code
class ProposalBudgetConstraint(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) min: Annotated[StrictFloat | None, Field(ge=0.0)] = None max: Annotated[StrictFloat | None, Field(ge=0.0)] = None currency: Annotated[str, Field(pattern='^[A-Z]{3}$')] @model_validator(mode='after') def _require_schema_required_group(self) -> ProposalBudgetConstraint: # ``required`` asks whether the caller supplied the field, which is what # model_fields_set answers. An explicit null is a supplied value — on a # mutation input it is the command to clear — and a default the caller # never sent is not. for group in (('min',), ('max',),): if all(name in self.model_fields_set for name in group): return self raise ValueError( 'ProposalBudgetConstraint requires at least one of these field groups: min | max' )Base model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var currency : strvar max : float | Nonevar min : float | Nonevar model_config
Inherited members