HostKit.RunRecord (host_kit v0.1.0-beta.1)

Copy Markdown View Source

Minimal host-side record of an applied HostKit plan.

Summary

Functions

Decodes a JSON string into this struct.

Decodes a JSON string into this struct, raising on failure.

Dumps this struct into JSON-shaped data, respecting JSON field names.

Builds this struct from a decoded JSON map.

Builds this struct from a decoded JSON map, raising on failure.

Returns a JSON Schema-compatible schema map.

Returns a JSON Schema-compatible schema map.

Converts this struct into a JSON-shaped map.

Types

t()

@type t() :: %HostKit.RunRecord{
  applied_at: String.t(),
  artifacts: %{required(String.t()) => String.t()},
  backups: %{required(String.t()) => String.t()},
  changes: [HostKit.RunRecord.Change.t()],
  direction: String.t(),
  id: String.t(),
  project: String.t(),
  version: pos_integer()
}

Functions

apply_backups(plan, record)

@spec apply_backups(HostKit.Plan.t(), t()) :: HostKit.Plan.t()

decode(json)

Decodes a JSON string into this struct.

decode!(json)

Decodes a JSON string into this struct, raising on failure.

dump(struct)

Dumps this struct into JSON-shaped data, respecting JSON field names.

from_map(map)

Builds this struct from a decoded JSON map.

from_map!(map)

Builds this struct from a decoded JSON map, raising on failure.

json_schema()

Returns a JSON Schema-compatible schema map.

latest(opts \\ [])

@spec latest(keyword()) :: {:ok, t()} | {:error, term()}

list(opts \\ [])

@spec list(keyword()) :: {:ok, [t()]} | {:error, term()}

load(id_or_file, opts \\ [])

@spec load(
  String.t(),
  keyword()
) :: {:ok, t()} | {:error, term()}

prune(run_opts \\ [], opts)

@spec prune(keyword(), keyword()) :: {:ok, [t()]} | {:error, term()}

runs_root(plan \\ nil, opts)

@spec runs_root(
  HostKit.Plan.t() | nil,
  keyword()
) :: String.t()

schema()

Returns a JSON Schema-compatible schema map.

to_map(struct)

Converts this struct into a JSON-shaped map.

validate_version!(version)

write(plan, results, opts)

@spec write(HostKit.Plan.t(), [HostKit.Apply.result()], keyword()) ::
  :ok | {:error, term()}