# This file generated by `dagger_codegen`. Please DO NOT EDIT. defmodule Dagger.CheckGroup do @moduledoc """ Dagger.CheckGroup """ use Dagger.Core.Base, kind: :object, name: "CheckGroup" alias Dagger.Core.Client alias Dagger.Core.QueryBuilder, as: QB @derive Dagger.ID defstruct [:query_builder, :client] @type t() :: %__MODULE__{} @doc """ A unique identifier for this CheckGroup. """ @spec id(t()) :: {:ok, Dagger.CheckGroupID.t()} | {:error, term()} def id(%__MODULE__{} = check_group) do query_builder = check_group.query_builder |> QB.select("id") Client.execute(check_group.client, query_builder) end @doc """ Return a list of individual checks and their details """ @spec list(t()) :: {:ok, [Dagger.Check.t()]} | {:error, term()} def list(%__MODULE__{} = check_group) do query_builder = check_group.query_builder |> QB.select("list") |> QB.select("id") with {:ok, items} <- Client.execute(check_group.client, query_builder) do {:ok, for %{"id" => id} <- items do %Dagger.Check{ query_builder: QB.query() |> QB.select("loadCheckFromID") |> QB.put_arg("id", id), client: check_group.client } end} end end @doc """ Generate a markdown report """ @spec report(t()) :: Dagger.File.t() def report(%__MODULE__{} = check_group) do query_builder = check_group.query_builder |> QB.select("report") %Dagger.File{ query_builder: query_builder, client: check_group.client } end @doc """ Execute all selected checks """ @spec run(t()) :: Dagger.CheckGroup.t() def run(%__MODULE__{} = check_group) do query_builder = check_group.query_builder |> QB.select("run") %Dagger.CheckGroup{ query_builder: query_builder, client: check_group.client } end end defimpl Jason.Encoder, for: Dagger.CheckGroup do def encode(check_group, opts) do {:ok, id} = Dagger.CheckGroup.id(check_group) Jason.Encode.string(id, opts) end end defimpl Nestru.Decoder, for: Dagger.CheckGroup do def decode_fields_hint(_struct, _context, id) do {:ok, Dagger.Client.load_check_group_from_id(Dagger.Global.dag(), id)} end end