Packages
dagger
0.0.0
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
Retired package: Security issue - Published by mistake, fixed in https://github.com/dagger/dagger/pull/7104
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/function.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Function do
@moduledoc """
Function represents a resolver provided by a Module.
A function always evaluates against a parent object and is given a set of named arguments.
"""
use Dagger.Core.QueryBuilder
@derive Dagger.ID
defstruct [:selection, :client]
@type t() :: %__MODULE__{}
@doc "Arguments accepted by the function, if any."
@spec args(t()) :: {:ok, [Dagger.FunctionArg.t()]} | {:error, term()}
def args(%__MODULE__{} = function) do
selection =
function.selection |> select("args") |> select("id")
with {:ok, items} <- execute(selection, function.client) do
{:ok,
for %{"id" => id} <- items do
%Dagger.FunctionArg{
selection:
query()
|> select("loadFunctionArgFromID")
|> arg("id", id),
client: function.client
}
end}
end
end
@doc "A doc string for the function, if any."
@spec description(t()) :: {:ok, String.t()} | {:error, term()}
def description(%__MODULE__{} = function) do
selection =
function.selection |> select("description")
execute(selection, function.client)
end
@doc "A unique identifier for this Function."
@spec id(t()) :: {:ok, Dagger.FunctionID.t()} | {:error, term()}
def id(%__MODULE__{} = function) do
selection =
function.selection |> select("id")
execute(selection, function.client)
end
@doc "The name of the function."
@spec name(t()) :: {:ok, String.t()} | {:error, term()}
def name(%__MODULE__{} = function) do
selection =
function.selection |> select("name")
execute(selection, function.client)
end
@doc "The type returned by the function."
@spec return_type(t()) :: Dagger.TypeDef.t()
def return_type(%__MODULE__{} = function) do
selection =
function.selection |> select("returnType")
%Dagger.TypeDef{
selection: selection,
client: function.client
}
end
@doc "Returns the function with the provided argument"
@spec with_arg(t(), String.t(), Dagger.TypeDef.t(), [
{:description, String.t() | nil},
{:default_value, Dagger.JSON.t() | nil}
]) :: Dagger.Function.t()
def with_arg(%__MODULE__{} = function, name, type_def, optional_args \\ []) do
selection =
function.selection
|> select("withArg")
|> put_arg("name", name)
|> put_arg("typeDef", Dagger.ID.id!(type_def))
|> maybe_put_arg("description", optional_args[:description])
|> maybe_put_arg("defaultValue", optional_args[:default_value])
%Dagger.Function{
selection: selection,
client: function.client
}
end
@doc "Returns the function with the given doc string."
@spec with_description(t(), String.t()) :: Dagger.Function.t()
def with_description(%__MODULE__{} = function, description) do
selection =
function.selection |> select("withDescription") |> put_arg("description", description)
%Dagger.Function{
selection: selection,
client: function.client
}
end
end