Packages
dagger
0.19.1
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/address.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Address do
@moduledoc """
A standardized address to load containers, directories, secrets, and other object types. Address format depends on the type, and is validated at type selection.
"""
use Dagger.Core.Base, kind: :object, name: "Address"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
Load a container from the address.
"""
@spec container(t()) :: Dagger.Container.t()
def container(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("container")
%Dagger.Container{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a directory from the address.
"""
@spec directory(t(), [
{:exclude, [String.t()]},
{:include, [String.t()]},
{:no_cache, boolean() | nil}
]) :: Dagger.Directory.t()
def directory(%__MODULE__{} = address, optional_args \\ []) do
query_builder =
address.query_builder
|> QB.select("directory")
|> QB.maybe_put_arg("exclude", optional_args[:exclude])
|> QB.maybe_put_arg("include", optional_args[:include])
|> QB.maybe_put_arg("noCache", optional_args[:no_cache])
%Dagger.Directory{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a file from the address.
"""
@spec file(t(), [
{:exclude, [String.t()]},
{:include, [String.t()]},
{:no_cache, boolean() | nil}
]) :: Dagger.File.t()
def file(%__MODULE__{} = address, optional_args \\ []) do
query_builder =
address.query_builder
|> QB.select("file")
|> QB.maybe_put_arg("exclude", optional_args[:exclude])
|> QB.maybe_put_arg("include", optional_args[:include])
|> QB.maybe_put_arg("noCache", optional_args[:no_cache])
%Dagger.File{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a git ref (branch, tag or commit) from the address.
"""
@spec git_ref(t()) :: Dagger.GitRef.t()
def git_ref(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("gitRef")
%Dagger.GitRef{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a git repository from the address.
"""
@spec git_repository(t()) :: Dagger.GitRepository.t()
def git_repository(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("gitRepository")
%Dagger.GitRepository{
query_builder: query_builder,
client: address.client
}
end
@doc """
A unique identifier for this Address.
"""
@spec id(t()) :: {:ok, Dagger.AddressID.t()} | {:error, term()}
def id(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("id")
Client.execute(address.client, query_builder)
end
@doc """
Load a secret from the address.
"""
@spec secret(t()) :: Dagger.Secret.t()
def secret(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("secret")
%Dagger.Secret{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a service from the address.
"""
@spec service(t()) :: Dagger.Service.t()
def service(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("service")
%Dagger.Service{
query_builder: query_builder,
client: address.client
}
end
@doc """
Load a local socket from the address.
"""
@spec socket(t()) :: Dagger.Socket.t()
def socket(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("socket")
%Dagger.Socket{
query_builder: query_builder,
client: address.client
}
end
@doc """
The address value
"""
@spec value(t()) :: {:ok, String.t()} | {:error, term()}
def value(%__MODULE__{} = address) do
query_builder =
address.query_builder |> QB.select("value")
Client.execute(address.client, query_builder)
end
end
defimpl Jason.Encoder, for: Dagger.Address do
def encode(address, opts) do
{:ok, id} = Dagger.Address.id(address)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Address do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_address_from_id(Dagger.Global.dag(), id)}
end
end