mud_server.api.models_policy

Pydantic API models for policy hash and canonical policy-object endpoints.

This module now carries two model groups: - hash snapshot models used by Step 1 drift checks - policy-object CRUD/validate/activate/publish models used by the 3-layer API

Classes

PolicyHashDirectoryResponse

One deterministic directory hash summary under the canonical policy root.

PolicyHashSnapshotResponse

Top-level canonical policy hash snapshot payload.

PolicyObjectResponse

Canonical policy-object payload returned by policy CRUD endpoints.

PolicyListResponse

List payload for filtered policy-object queries.

PolicyCapabilitiesResponse

Capability metadata for authorized policy API sessions.

PolicyValidateRequest

Request body for policy variant validation.

PolicyValidateResponse

Validation response payload for one policy variant.

PolicyUpsertRequest

Request body for policy variant upsert.

PolicyActivationRequest

Request body for activation pointer updates.

PolicyActivationEntryResponse

One activation pointer row in API responses.

PolicyActivationListResponse

Scope activation listing payload.

PolicyPublishRequest

Request payload for deterministic policy publish generation.

PolicyImportRequest

Request payload for importing one publish artifact into canonical DB.

PolicyPublishManifestItemResponse

One policy variant row in publish manifest payload.

PolicyPublishManifestResponse

Deterministic publish manifest for one activation scope.

PolicyPublishArtifactResponse

Deterministic export artifact metadata for downstream mirrors.

PolicyPublishResponse

API response for publish-run creation.

PolicyPublishRunResponse

API response for one persisted publish run.

PolicyImportEntryResponse

One import outcome row for artifact ingestion.

PolicyImportResponse

API response for artifact import into canonical policy state.

Module Contents

class mud_server.api.models_policy.PolicyHashDirectoryResponse(/, **data)[source]

Bases: pydantic.BaseModel

One deterministic directory hash summary under the canonical policy root.

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.

self is explicitly positional-only to allow self as a field name.

path: str
file_count: int
hash: str
class mud_server.api.models_policy.PolicyHashSnapshotResponse(/, **data)[source]

Bases: pydantic.BaseModel

Top-level canonical policy hash snapshot payload.

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.

self is explicitly positional-only to allow self as a field name.

hash_version: str
canonical_root: str
generated_at: str
file_count: int
root_hash: str
directories: list[PolicyHashDirectoryResponse]
class mud_server.api.models_policy.PolicyObjectResponse(/, **data)[source]

Bases: pydantic.BaseModel

Canonical policy-object payload returned by policy CRUD endpoints.

This shape mirrors the contract in 3_layer_policy_architecture.md section 24.1.

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.

self is explicitly positional-only to allow self as a field name.

policy_id: str
policy_type: str
namespace: str
policy_key: str
variant: str
schema_version: str
policy_version: int
status: str
content: dict[str, Any]
content_hash: str
updated_at: str
updated_by: str
slot_kinds: list[str]
class mud_server.api.models_policy.PolicyListResponse(/, **data)[source]

Bases: pydantic.BaseModel

List payload for filtered policy-object queries.

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.

self is explicitly positional-only to allow self as a field name.

items: list[PolicyObjectResponse]
class mud_server.api.models_policy.PolicyCapabilitiesResponse(/, **data)[source]

Bases: pydantic.BaseModel

Capability metadata for authorized policy API sessions.

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.

self is explicitly positional-only to allow self as a field name.

authorized: bool
role: str
allowed_policy_types: list[str]
allowed_statuses: list[str]
class mud_server.api.models_policy.PolicyValidateRequest(/, **data)[source]

Bases: pydantic.BaseModel

Request body for policy variant validation.

validated_by is optional; route handlers default it from authenticated username when omitted.

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.

self is explicitly positional-only to allow self as a field name.

schema_version: str = None
policy_version: int = None
status: str = None
content: dict[str, Any]
validated_by: str | None = None
class mud_server.api.models_policy.PolicyValidateResponse(/, **data)[source]

Bases: pydantic.BaseModel

Validation response payload for one policy variant.

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.

self is explicitly positional-only to allow self as a field name.

policy_id: str
variant: str
is_valid: bool
errors: list[str]
content_hash: str
validated_at: str
validated_by: str
validation_run_id: int
class mud_server.api.models_policy.PolicyUpsertRequest(/, **data)[source]

Bases: pydantic.BaseModel

Request body for policy variant upsert.

updated_by is optional; route handlers default it from authenticated username when omitted.

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.

self is explicitly positional-only to allow self as a field name.

schema_version: str = None
policy_version: int = None
status: str = None
content: dict[str, Any]
updated_by: str | None = None
class mud_server.api.models_policy.PolicyActivationRequest(/, **data)[source]

Bases: pydantic.BaseModel

Request body for activation pointer updates.

rollback_of_activation_id points to a prior activation audit event and requests pointer reassignment to that event’s variant.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str = None
client_profile: str | None = None
policy_id: str = None
variant: str = None
activated_by: str | None = None
rollback_of_activation_id: int | None = None
class mud_server.api.models_policy.PolicyActivationEntryResponse(/, **data)[source]

Bases: pydantic.BaseModel

One activation pointer row in API responses.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str
client_profile: str | None
policy_id: str
variant: str
activated_at: str
activated_by: str
rollback_of_activation_id: int | None
audit_event_id: int | None = None
class mud_server.api.models_policy.PolicyActivationListResponse(/, **data)[source]

Bases: pydantic.BaseModel

Scope activation listing payload.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str
client_profile: str | None
items: list[PolicyActivationEntryResponse]
class mud_server.api.models_policy.PolicyPublishRequest(/, **data)[source]

Bases: pydantic.BaseModel

Request payload for deterministic policy publish generation.

actor is optional; route handlers default it from authenticated username when omitted.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str = None
client_profile: str | None = None
actor: str | None = None
class mud_server.api.models_policy.PolicyImportRequest(/, **data)[source]

Bases: pydantic.BaseModel

Request payload for importing one publish artifact into canonical DB.

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.

self is explicitly positional-only to allow self as a field name.

artifact: dict[str, Any]
actor: str | None = None
activate: bool = True
class mud_server.api.models_policy.PolicyPublishManifestItemResponse(/, **data)[source]

Bases: pydantic.BaseModel

One policy variant row in publish manifest payload.

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.

self is explicitly positional-only to allow self as a field name.

policy_id: str
policy_type: str
namespace: str
policy_key: str
variant: str
schema_version: str
policy_version: int
status: str
content_hash: str
updated_at: str
class mud_server.api.models_policy.PolicyPublishManifestResponse(/, **data)[source]

Bases: pydantic.BaseModel

Deterministic publish manifest for one activation scope.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str
client_profile: str | None
generated_at: str
item_count: int
items_hash: str
manifest_hash: str
items: list[PolicyPublishManifestItemResponse]
class mud_server.api.models_policy.PolicyPublishArtifactResponse(/, **data)[source]

Bases: pydantic.BaseModel

Deterministic export artifact metadata for downstream mirrors.

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.

self is explicitly positional-only to allow self as a field name.

artifact_hash: str
artifact_path: str
latest_path: str
class mud_server.api.models_policy.PolicyPublishResponse(/, **data)[source]

Bases: pydantic.BaseModel

API response for publish-run creation.

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.

self is explicitly positional-only to allow self as a field name.

publish_run_id: int
manifest: PolicyPublishManifestResponse
artifact: PolicyPublishArtifactResponse
class mud_server.api.models_policy.PolicyPublishRunResponse(/, **data)[source]

Bases: pydantic.BaseModel

API response for one persisted publish run.

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.

self is explicitly positional-only to allow self as a field name.

publish_run_id: int
world_id: str
client_profile: str | None
actor: str
created_at: str
manifest: PolicyPublishManifestResponse
artifact: PolicyPublishArtifactResponse
class mud_server.api.models_policy.PolicyImportEntryResponse(/, **data)[source]

Bases: pydantic.BaseModel

One import outcome row for artifact ingestion.

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.

self is explicitly positional-only to allow self as a field name.

policy_id: str | None
variant: str | None
action: str
detail: str
class mud_server.api.models_policy.PolicyImportResponse(/, **data)[source]

Bases: pydantic.BaseModel

API response for artifact import into canonical policy state.

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.

self is explicitly positional-only to allow self as a field name.

world_id: str
client_profile: str | None
activate: bool
item_count: int
imported_count: int
updated_count: int
skipped_count: int
error_count: int
activated_count: int
activation_skipped_count: int
manifest_hash: str
items_hash: str
artifact_hash: str
variants_hash: str
entries: list[PolicyImportEntryResponse]