# This file generated by `dagger_codegen`. Please DO NOT EDIT. defmodule Dagger.Check do @moduledoc """ Dagger.Check """ use Dagger.Core.Base, kind: :object, name: "Check" alias Dagger.Core.Client alias Dagger.Core.QueryBuilder, as: QB @derive Dagger.ID defstruct [:query_builder, :client] @type t() :: %__MODULE__{} @doc """ The type of check: 'check' for annotated checks, 'generate' for generate-as-checks """ @spec check_type(t()) :: {:ok, String.t()} | {:error, term()} def check_type(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("checkType") Client.execute(check.client, query_builder) end @doc """ Whether the check completed """ @spec completed(t()) :: {:ok, boolean()} | {:error, term()} def completed(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("completed") Client.execute(check.client, query_builder) end @doc """ The description of the check """ @spec description(t()) :: {:ok, String.t()} | {:error, term()} def description(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("description") Client.execute(check.client, query_builder) end @doc """ If the check failed, this is the error """ @spec error(t()) :: Dagger.Error.t() | nil def error(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("error") %Dagger.Error{ query_builder: query_builder, client: check.client } end @doc """ A unique identifier for this Check. """ @spec id(t()) :: {:ok, String.t()} | {:error, term()} def id(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("id") Client.execute(check.client, query_builder) end @doc """ Return the fully qualified name of the check """ @spec name(t()) :: {:ok, String.t()} | {:error, term()} def name(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("name") Client.execute(check.client, query_builder) end @doc """ The original module in which the check has been defined """ @spec original_module(t()) :: Dagger.Module.t() def original_module(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("originalModule") %Dagger.Module{ query_builder: query_builder, client: check.client } end @doc """ Whether the check passed """ @spec passed(t()) :: {:ok, boolean()} | {:error, term()} def passed(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("passed") Client.execute(check.client, query_builder) end @doc """ The path of the check within its module """ @spec path(t()) :: {:ok, [String.t()]} | {:error, term()} def path(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("path") Client.execute(check.client, query_builder) end @doc """ An emoji representing the result of the check """ @spec result_emoji(t()) :: {:ok, String.t()} | {:error, term()} def result_emoji(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("resultEmoji") Client.execute(check.client, query_builder) end @doc """ Execute the check """ @spec run(t()) :: Dagger.Check.t() def run(%__MODULE__{} = check) do query_builder = check.query_builder |> QB.select("run") %Dagger.Check{ query_builder: query_builder, client: check.client } end end defimpl Jason.Encoder, for: Dagger.Check do def encode(check, opts) do {:ok, id} = Dagger.Check.id(check) Jason.Encode.string(id, opts) end end defimpl Nestru.Decoder, for: Dagger.Check do def decode_fields_hint(_struct, _context, id) do alias Dagger.Core.QueryBuilder, as: QB dag = Dagger.Global.dag() {:ok, %Dagger.Check{ query_builder: dag.query_builder |> QB.select("node") |> QB.put_arg("id", id) |> QB.inline_fragment("Check"), client: dag.client }} end end