Packages
dagger
0.21.4
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.8
0.20.7
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.11
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.19
0.18.18
0.18.17
0.18.16
0.18.15
0.18.14
0.18.13
0.18.12
0.18.11
0.18.10
0.18.9
0.18.8
0.18.7
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.2
0.0.0
retired
Dagger SDK for Elixir
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/up_group.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.UpGroup do
@moduledoc """
Dagger.UpGroup
"""
use Dagger.Core.Base, kind: :object, name: "UpGroup"
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 UpGroup.
"""
@spec id(t()) :: {:ok, String.t()} | {:error, term()}
def id(%__MODULE__{} = up_group) do
query_builder =
up_group.query_builder |> QB.select("id")
Client.execute(up_group.client, query_builder)
end
@doc """
Return a list of individual services and their details
"""
@spec list(t()) :: {:ok, [Dagger.Up.t()]} | {:error, term()}
def list(%__MODULE__{} = up_group) do
query_builder =
up_group.query_builder |> QB.select("list") |> QB.select("id")
with {:ok, items} <- Client.execute(up_group.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.Up{
query_builder:
QB.query()
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("Up"),
client: up_group.client
}
end}
end
end
@doc """
Execute all selected service functions
"""
@spec run(t()) :: Dagger.UpGroup.t()
def run(%__MODULE__{} = up_group) do
query_builder =
up_group.query_builder |> QB.select("run")
%Dagger.UpGroup{
query_builder: query_builder,
client: up_group.client
}
end
end
defimpl Jason.Encoder, for: Dagger.UpGroup do
def encode(up_group, opts) do
{:ok, id} = Dagger.UpGroup.id(up_group)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.UpGroup do
def decode_fields_hint(_struct, _context, id) do
alias Dagger.Core.QueryBuilder, as: QB
dag = Dagger.Global.dag()
{:ok,
%Dagger.UpGroup{
query_builder:
dag.query_builder
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("UpGroup"),
client: dag.client
}}
end
end