Packages
dagger
0.21.6
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/generator_group.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.GeneratorGroup do
@moduledoc """
Dagger.GeneratorGroup
"""
use Dagger.Core.Base, kind: :object, name: "GeneratorGroup"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
The combined changes from the last run of the generators
If any conflict occurs, for instance if the same file is modified by multiple generators, or if a file is both modified and deleted, an error is raised and the merge of the changesets will failed.
Set 'continueOnConflicts' flag to force to merge the changes in a 'last write wins' strategy.
"""
@spec changes(t(), [{:on_conflict, Dagger.ChangesetsMergeConflict.t() | nil}]) ::
Dagger.Changeset.t()
def changes(%__MODULE__{} = generator_group, optional_args \\ []) do
query_builder =
generator_group.query_builder
|> QB.select("changes")
|> QB.maybe_put_arg("onConflict", optional_args[:on_conflict])
%Dagger.Changeset{
query_builder: query_builder,
client: generator_group.client
}
end
@doc """
A unique identifier for this GeneratorGroup.
"""
@spec id(t()) :: {:ok, String.t()} | {:error, term()}
def id(%__MODULE__{} = generator_group) do
query_builder =
generator_group.query_builder |> QB.select("id")
Client.execute(generator_group.client, query_builder)
end
@doc """
Whether the generated changeset from the last run is empty or not
"""
@spec empty?(t()) :: {:ok, boolean()} | {:error, term()}
def empty?(%__MODULE__{} = generator_group) do
query_builder =
generator_group.query_builder |> QB.select("isEmpty")
Client.execute(generator_group.client, query_builder)
end
@doc """
Return a list of individual generators and their details
"""
@spec list(t()) :: {:ok, [Dagger.Generator.t()]} | {:error, term()}
def list(%__MODULE__{} = generator_group) do
query_builder =
generator_group.query_builder |> QB.select("list") |> QB.select("id")
with {:ok, items} <- Client.execute(generator_group.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.Generator{
query_builder:
QB.query()
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("Generator"),
client: generator_group.client
}
end}
end
end
@doc """
Execute all selected generators
"""
@spec run(t()) :: Dagger.GeneratorGroup.t()
def run(%__MODULE__{} = generator_group) do
query_builder =
generator_group.query_builder |> QB.select("run")
%Dagger.GeneratorGroup{
query_builder: query_builder,
client: generator_group.client
}
end
end
defimpl Jason.Encoder, for: Dagger.GeneratorGroup do
def encode(generator_group, opts) do
{:ok, id} = Dagger.GeneratorGroup.id(generator_group)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.GeneratorGroup do
def decode_fields_hint(_struct, _context, id) do
alias Dagger.Core.QueryBuilder, as: QB
dag = Dagger.Global.dag()
{:ok,
%Dagger.GeneratorGroup{
query_builder:
dag.query_builder
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("GeneratorGroup"),
client: dag.client
}}
end
end