# Code generated by highflame-policy-codegen. DO NOT EDIT.
# Source: schema/highflame.cedarschema

"""Highflame Policy - Cedar schema types and constants."""

from .entities import (
    Entity,
    EntityType,
    EntityUID,
    new_entity,
    new_entity_uid,
)
from .actions import ActionType, action_uid
from .context import ContextKey

# Non-generated modules (require cedarpy)
from .engine import (
    PolicyEngine,
    Decision,
    ValidationLimits,
    EngineOptions,
    InputValidationError,
    DEFAULT_LIMITS,
)
from .parser import parse_cedar_to_rules, ParseResult
from .rule import (
    PolicyRule,
    PolicyCondition,
    PolicyEntity,
    PolicyEffect,
    ConditionOperator,
    ConditionExpression,
    new_policy_rule,
    new_policy_entity,
    new_policy_condition,
)
from .errors import ParserError, ErrorCodes, ErrorContext
from .annotations import (
    PolicyAnnotations,
    PolicySeverity,
    CustomAnnotations,
    ParseAnnotationsResult,
    PREDEFINED_ANNOTATION_KEYS,
    is_predefined_annotation_key,
    is_valid_annotation_key,
    escape_annotation_value,
    unescape_annotation_value,
    format_annotation,
    generate_annotation_lines,
    parse_annotations,
    generate_rule_id,
)
from .builder import rule_to_cedar, rules_to_cedar
from .explain import (
    ExplainedDecision,
    PolicyExplanation,
    ConditionResult,
    EvaluatedExpression,
    explain_decision,
    evaluate_expression,
)

# Guardrails default policies, templates, and categories
from .guardrails_defaults import (
    GuardrailsCategoryInfo,
    GuardrailsDefaultPolicy,
    GuardrailsTemplate,
    GUARDRAILS_CATEGORIES,
    GUARDRAILS_DEFAULTS,
    GUARDRAILS_TEMPLATES,
    get_guardrails_defaults_by_category,
    get_guardrails_templates_by_category,
    get_guardrails_template_by_id,
    get_guardrails_templates_metadata_json,
)

# Overwatch default policies, templates, and categories
from .overwatch_defaults import (
    OverwatchCategoryInfo,
    OverwatchDefaultPolicy,
    OverwatchTemplate,
    OVERWATCH_CATEGORIES,
    OVERWATCH_DEFAULTS,
    OVERWATCH_TEMPLATES,
    get_overwatch_defaults_by_category,
    get_overwatch_templates_by_category,
    get_overwatch_template_by_id,
    get_overwatch_templates_metadata_json,
)

__all__ = [
    # Entities
    "Entity",
    "EntityType",
    "EntityUID",
    "new_entity",
    "new_entity_uid",
    # Actions
    "ActionType",
    "action_uid",
    # Context
    "ContextKey",
    # Engine
    "PolicyEngine",
    "Decision",
    "ValidationLimits",
    "EngineOptions",
    "InputValidationError",
    "DEFAULT_LIMITS",
    # Parser
    "parse_cedar_to_rules",
    "ParseResult",
    # PolicyRule
    "PolicyRule",
    "PolicyCondition",
    "PolicyEntity",
    "PolicyEffect",
    "ConditionOperator",
    "ConditionExpression",
    "new_policy_rule",
    "new_policy_entity",
    "new_policy_condition",
    # Errors
    "ParserError",
    "ErrorCodes",
    "ErrorContext",
    # Annotations
    "PolicyAnnotations",
    "PolicySeverity",
    "CustomAnnotations",
    "ParseAnnotationsResult",
    "PREDEFINED_ANNOTATION_KEYS",
    "is_predefined_annotation_key",
    "is_valid_annotation_key",
    "escape_annotation_value",
    "unescape_annotation_value",
    "format_annotation",
    "generate_annotation_lines",
    "parse_annotations",
    "generate_rule_id",
    # Builder
    "rule_to_cedar",
    "rules_to_cedar",
    # Explain
    "ExplainedDecision",
    "PolicyExplanation",
    "ConditionResult",
    "EvaluatedExpression",
    "explain_decision",
    "evaluate_expression",
    # Guardrails defaults
    "GuardrailsCategoryInfo",
    "GuardrailsDefaultPolicy",
    "GuardrailsTemplate",
    "GUARDRAILS_CATEGORIES",
    "GUARDRAILS_DEFAULTS",
    "GUARDRAILS_TEMPLATES",
    "get_guardrails_defaults_by_category",
    "get_guardrails_templates_by_category",
    "get_guardrails_template_by_id",
    "get_guardrails_templates_metadata_json",
    # Overwatch defaults
    "OverwatchCategoryInfo",
    "OverwatchDefaultPolicy",
    "OverwatchTemplate",
    "OVERWATCH_CATEGORIES",
    "OVERWATCH_DEFAULTS",
    "OVERWATCH_TEMPLATES",
    "get_overwatch_defaults_by_category",
    "get_overwatch_templates_by_category",
    "get_overwatch_template_by_id",
    "get_overwatch_templates_metadata_json",
]
