Packages
dagger
0.21.3
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/env_file.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.EnvFile do
@moduledoc """
A collection of environment variables.
"""
use Dagger.Core.Base, kind: :object, name: "EnvFile"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
Return as a file
"""
@spec as_file(t()) :: Dagger.File.t()
def as_file(%__MODULE__{} = env_file) do
query_builder =
env_file.query_builder |> QB.select("asFile")
%Dagger.File{
query_builder: query_builder,
client: env_file.client
}
end
@doc """
Check if a variable exists
"""
@spec exists(t(), String.t()) :: {:ok, boolean()} | {:error, term()}
def exists(%__MODULE__{} = env_file, name) do
query_builder =
env_file.query_builder |> QB.select("exists") |> QB.put_arg("name", name)
Client.execute(env_file.client, query_builder)
end
@doc """
Lookup a variable (last occurrence wins) and return its value, or an empty string
"""
@spec get(t(), String.t(), [{:raw, boolean() | nil}]) :: {:ok, String.t()} | {:error, term()}
def get(%__MODULE__{} = env_file, name, optional_args \\ []) do
query_builder =
env_file.query_builder
|> QB.select("get")
|> QB.put_arg("name", name)
|> QB.maybe_put_arg("raw", optional_args[:raw])
Client.execute(env_file.client, query_builder)
end
@doc """
A unique identifier for this EnvFile.
"""
@spec id(t()) :: {:ok, String.t()} | {:error, term()}
def id(%__MODULE__{} = env_file) do
query_builder =
env_file.query_builder |> QB.select("id")
Client.execute(env_file.client, query_builder)
end
@doc """
Filters variables by prefix and removes the pref from keys. Variables without the prefix are excluded. For example, with the prefix "MY_APP_" and variables: MY_APP_TOKEN=topsecret MY_APP_NAME=hello FOO=bar the resulting environment will contain: TOKEN=topsecret NAME=hello
"""
@spec namespace(t(), String.t()) :: Dagger.EnvFile.t()
def namespace(%__MODULE__{} = env_file, prefix) do
query_builder =
env_file.query_builder |> QB.select("namespace") |> QB.put_arg("prefix", prefix)
%Dagger.EnvFile{
query_builder: query_builder,
client: env_file.client
}
end
@doc """
Return all variables
"""
@spec variables(t(), [{:raw, boolean() | nil}]) ::
{:ok, [Dagger.EnvVariable.t()]} | {:error, term()}
def variables(%__MODULE__{} = env_file, optional_args \\ []) do
query_builder =
env_file.query_builder
|> QB.select("variables")
|> QB.maybe_put_arg("raw", optional_args[:raw])
|> QB.select("id")
with {:ok, items} <- Client.execute(env_file.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.EnvVariable{
query_builder:
QB.query()
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("EnvVariable"),
client: env_file.client
}
end}
end
end
@doc """
Add a variable
"""
@spec with_variable(t(), String.t(), String.t()) :: Dagger.EnvFile.t()
def with_variable(%__MODULE__{} = env_file, name, value) do
query_builder =
env_file.query_builder
|> QB.select("withVariable")
|> QB.put_arg("name", name)
|> QB.put_arg("value", value)
%Dagger.EnvFile{
query_builder: query_builder,
client: env_file.client
}
end
@doc """
Remove all occurrences of the named variable
"""
@spec without_variable(t(), String.t()) :: Dagger.EnvFile.t()
def without_variable(%__MODULE__{} = env_file, name) do
query_builder =
env_file.query_builder |> QB.select("withoutVariable") |> QB.put_arg("name", name)
%Dagger.EnvFile{
query_builder: query_builder,
client: env_file.client
}
end
end
defimpl Jason.Encoder, for: Dagger.EnvFile do
def encode(env_file, opts) do
{:ok, id} = Dagger.EnvFile.id(env_file)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.EnvFile do
def decode_fields_hint(_struct, _context, id) do
alias Dagger.Core.QueryBuilder, as: QB
dag = Dagger.Global.dag()
{:ok,
%Dagger.EnvFile{
query_builder:
dag.query_builder
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("EnvFile"),
client: dag.client
}}
end
end