HostKit.Plan.Artifact (host_kit v0.1.0-beta.0)

Copy Markdown View Source

Portable JSON artifact for a resolved 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.Plan.Artifact{
  changes: [term()],
  diagnostics: term(),
  project: term(),
  resources: [term()],
  sources: map(),
  summary: term(),
  target: map() | nil,
  version: pos_integer()
}

Functions

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.

from_plan(plan, opts \\ [])

@spec from_plan(
  HostKit.Plan.t(),
  keyword()
) :: t()

json_schema()

Returns a JSON Schema-compatible schema map.

load(path, opts \\ [])

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

load_artifact(path, opts \\ [])

@spec load_artifact(
  Path.t(),
  keyword()
) :: {:ok, t()} | {:error, term()}

save(path, plan, opts \\ [])

@spec save(Path.t(), HostKit.Plan.t(), keyword()) :: :ok | {:error, term()}

schema()

Returns a JSON Schema-compatible schema map.

to_map(struct)

Converts this struct into a JSON-shaped map.

to_plan(artifact)

@spec to_plan(t()) :: {:ok, HostKit.Plan.t()} | {:error, term()}

validate_version!(version)