PtcRunner.Kernel.DiagnosticCatalog (PtcRunner v0.14.0)

Copy Markdown View Source

Authoritative closed V1 command diagnostic catalog.

Each row owns the phase, code, exit status, retryability, and bounded default message. Renderers and schemas derive their admitted pairs from this table; lower-level reasons never add a public code.

Summary

Types

phase()

@type phase() ::
  :arguments
  | :project
  | :host
  | :application
  | :bundle
  | :provider_declaration
  | :destination
  | :local_preflight
  | :active_preflight
  | :provider_acquisition
  | :execution
  | :result_cleanup
  | :publication
  | :internal

row()

@type row() :: %{
  phase: phase(),
  code: atom(),
  exit_status: 2 | 3 | 4 | 5 | 6 | 7 | 70,
  retryable: boolean(),
  message: binary()
}

Functions

compound_precedence(phase, code)

@spec compound_precedence(phase(), atom()) ::
  {:ok, {1..8, non_neg_integer()}} | :error

Returns the closed compound-failure precedence key for a catalog pair.

Lower keys have higher precedence. :error identifies preparation-only diagnostics that cannot participate in a compound outcome.

fetch(phase, code)

@spec fetch(phase(), atom()) :: {:ok, row()} | :error

fetch!(phase, code)

@spec fetch!(phase(), atom()) :: row()

path_policy(arg1, code, kind)

@spec path_policy(phase(), atom(), atom() | nil) :: :optional | :forbidden

provider_activity_policy(phase, code)

@spec provider_activity_policy(phase(), atom()) :: false | true | :boolean

rows()

@spec rows() :: [row()]

source_kinds(arg1, code)

@spec source_kinds(phase(), atom()) :: [atom()]

subject_occurrence_policy(arg1, code, operation)

@spec subject_occurrence_policy(phase(), atom(), atom()) ::
  :required | :optional | :forbidden

subject_operations(arg1, code)

@spec subject_operations(phase(), atom()) :: [atom()]

subject_policy(phase, code)

@spec subject_policy(phase(), atom()) :: :required | :optional | :forbidden