# This file generated by `dagger_codegen`. Please DO NOT EDIT. defmodule Dagger.SDKConfig do @moduledoc """ The SDK config of the module. """ use Dagger.Core.Base, kind: :object, name: "SDKConfig" alias Dagger.Core.Client alias Dagger.Core.QueryBuilder, as: QB @derive Dagger.ID defstruct [:query_builder, :client] @type t() :: %__MODULE__{} @doc """ Whether to start the SDK runtime in debug mode with an interactive terminal. """ @spec debug(t()) :: {:ok, boolean()} | {:error, term()} def debug(%__MODULE__{} = sdk_config) do query_builder = sdk_config.query_builder |> QB.select("debug") Client.execute(sdk_config.client, query_builder) end @doc """ A unique identifier for this SDKConfig. """ @spec id(t()) :: {:ok, String.t()} | {:error, term()} def id(%__MODULE__{} = sdk_config) do query_builder = sdk_config.query_builder |> QB.select("id") Client.execute(sdk_config.client, query_builder) end @doc """ Source of the SDK. Either a name of a builtin SDK or a module source ref string pointing to the SDK's implementation. """ @spec source(t()) :: {:ok, String.t()} | {:error, term()} def source(%__MODULE__{} = sdk_config) do query_builder = sdk_config.query_builder |> QB.select("source") Client.execute(sdk_config.client, query_builder) end end defimpl Jason.Encoder, for: Dagger.SDKConfig do def encode(sdk_config, opts) do {:ok, id} = Dagger.SDKConfig.id(sdk_config) Jason.Encode.string(id, opts) end end defimpl Nestru.Decoder, for: Dagger.SDKConfig do def decode_fields_hint(_struct, _context, id) do alias Dagger.Core.QueryBuilder, as: QB dag = Dagger.Global.dag() {:ok, %Dagger.SDKConfig{ query_builder: dag.query_builder |> QB.select("node") |> QB.put_arg("id", id) |> QB.inline_fragment("SDKConfig"), client: dag.client }} end end