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

"""Action types for Highflame Cedar policies."""

from .entities import EntityUID

class ActionType:
    """Action types defined in the Highflame Cedar schema."""

    ACCESS_MEMORY: str = "access_memory"
    ACCESS_SERVER_RESOURCE: str = "access_server_resource"
    CALL_EXTERNAL_API: str = "call_external_api"
    CALL_TOOL: str = "call_tool"
    CONNECT_SERVER: str = "connect_server"
    DELEGATE_TASK: str = "delegate_task"
    DELETE_FILE: str = "delete_file"
    DEPLOY_MODEL: str = "deploy_model"
    EXECUTE_CODE: str = "execute_code"
    EXPORT_DATA: str = "export_data"
    FILTER_CONTENT: str = "filter_content"
    GIT_CHECKOUT: str = "git_checkout"
    GIT_CLONE: str = "git_clone"
    GIT_COMMIT: str = "git_commit"
    GIT_MERGE: str = "git_merge"
    GIT_OPERATION: str = "git_operation"
    GIT_PULL: str = "git_pull"
    GIT_PUSH: str = "git_push"
    GIT_REBASE: str = "git_rebase"
    GIT_RESET: str = "git_reset"
    HTTP_REQUEST: str = "http_request"
    INVOKE_MODEL: str = "invoke_model"
    LOAD_MODEL: str = "load_model"
    PROCESS_PROMPT: str = "process_prompt"
    PROCESS_RESPONSE: str = "process_response"
    QUARANTINE_ARTIFACT: str = "quarantine_artifact"
    READ_FILE: str = "read_file"
    RUN_BUILD: str = "run_build"
    RUN_TESTS: str = "run_tests"
    SCAN_ARTIFACT: str = "scan_artifact"
    SCAN_PACKAGE: str = "scan_package"
    SCAN_TARGET: str = "scan_target"
    SKIP_GUARDRAILS: str = "skip_guardrails"
    SPAWN_SUBPROCESS: str = "spawn_subprocess"
    TRANSFER_DATA: str = "transfer_data"
    VALIDATE_INTEGRITY: str = "validate_integrity"
    VALIDATE_PROVENANCE: str = "validate_provenance"
    WRITE_FILE: str = "write_file"


def action_uid(action: str) -> EntityUID:
    """Create an EntityUID for an action."""
    return {"type": "Action", "id": action}
