Source code for ralph.policy.models._individual_policy_block
"""Authoring-time individual policy block model."""
from __future__ import annotations
from importlib import import_module
from typing import TYPE_CHECKING, Literal, cast
from pydantic import Field
from ralph.policy.models._frozen_policy_model import _FrozenPolicyModel
if TYPE_CHECKING:
from ralph.policy.models._phase_definition import PhaseDefinition
else:
PhaseDefinition = cast(
"type[object]",
import_module("ralph.policy.models._phase_definition").PhaseDefinition,
)
[docs]
class IndividualPolicyBlock(_FrozenPolicyModel):
"""Leaf authoring block that compiles directly to one runtime phase."""
kind: Literal["individual"] = "individual"
phase_name: str = Field(..., description="Compiled runtime phase name for this block.")
phase: PhaseDefinition = Field(..., description="Compiled runtime phase definition.")