Source code for ralph.policy.models._budget_counter_config

"""BudgetCounterConfig Pydantic model."""

from __future__ import annotations

from pydantic import Field

from ralph.policy.models._frozen_policy_model import _FrozenPolicyModel


[docs] class BudgetCounterConfig(_FrozenPolicyModel): """Declaration of a named budget counter in the pipeline.""" description: str = Field(default="", description="Human-readable description") tracks_budget: bool = Field( default=True, description="Whether remaining budget is tracked for post-commit routing", ) default_max: int = Field( ..., ge=0, description="Default maximum budget — required so the runtime never invents a hidden cap", )