Packages
dagger
0.20.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.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Env do
@moduledoc """
Dagger.Env
"""
use Dagger.Core.Base, kind: :object, name: "Env"
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 Env.
"""
@spec id(t()) :: {:ok, Dagger.EnvID.t()} | {:error, term()}
def id(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("id")
Client.execute(env.client, query_builder)
end
@doc """
Retrieves an input binding by name
"""
@spec input(t(), String.t()) :: Dagger.Binding.t()
def input(%__MODULE__{} = env, name) do
query_builder =
env.query_builder |> QB.select("input") |> QB.put_arg("name", name)
%Dagger.Binding{
query_builder: query_builder,
client: env.client
}
end
@doc """
Returns all input bindings provided to the environment
"""
@spec inputs(t()) :: {:ok, [Dagger.Binding.t()]} | {:error, term()}
def inputs(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("inputs") |> QB.select("id")
with {:ok, items} <- Client.execute(env.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.Binding{
query_builder:
QB.query()
|> QB.select("loadBindingFromID")
|> QB.put_arg("id", id),
client: env.client
}
end}
end
end
@doc """
Retrieves an output binding by name
"""
@spec output(t(), String.t()) :: Dagger.Binding.t()
def output(%__MODULE__{} = env, name) do
query_builder =
env.query_builder |> QB.select("output") |> QB.put_arg("name", name)
%Dagger.Binding{
query_builder: query_builder,
client: env.client
}
end
@doc """
Returns all declared output bindings for the environment
"""
@spec outputs(t()) :: {:ok, [Dagger.Binding.t()]} | {:error, term()}
def outputs(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("outputs") |> QB.select("id")
with {:ok, items} <- Client.execute(env.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.Binding{
query_builder:
QB.query()
|> QB.select("loadBindingFromID")
|> QB.put_arg("id", id),
client: env.client
}
end}
end
end
@doc """
Create or update a binding of type Address in the environment
"""
@spec with_address_input(t(), String.t(), Dagger.Address.t(), String.t()) :: Dagger.Env.t()
def with_address_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withAddressInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Address output to be assigned in the environment
"""
@spec with_address_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_address_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withAddressOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type CacheVolume in the environment
"""
@spec with_cache_volume_input(t(), String.t(), Dagger.CacheVolume.t(), String.t()) ::
Dagger.Env.t()
def with_cache_volume_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withCacheVolumeInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired CacheVolume output to be assigned in the environment
"""
@spec with_cache_volume_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_cache_volume_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withCacheVolumeOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Changeset in the environment
"""
@spec with_changeset_input(t(), String.t(), Dagger.Changeset.t(), String.t()) :: Dagger.Env.t()
def with_changeset_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withChangesetInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Changeset output to be assigned in the environment
"""
@spec with_changeset_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_changeset_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withChangesetOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type CheckGroup in the environment
"""
@spec with_check_group_input(t(), String.t(), Dagger.CheckGroup.t(), String.t()) ::
Dagger.Env.t()
def with_check_group_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withCheckGroupInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired CheckGroup output to be assigned in the environment
"""
@spec with_check_group_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_check_group_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withCheckGroupOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Check in the environment
"""
@spec with_check_input(t(), String.t(), Dagger.Check.t(), String.t()) :: Dagger.Env.t()
def with_check_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withCheckInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Check output to be assigned in the environment
"""
@spec with_check_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_check_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withCheckOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Cloud in the environment
"""
@spec with_cloud_input(t(), String.t(), Dagger.Cloud.t(), String.t()) :: Dagger.Env.t()
def with_cloud_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withCloudInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Cloud output to be assigned in the environment
"""
@spec with_cloud_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_cloud_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withCloudOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Container in the environment
"""
@spec with_container_input(t(), String.t(), Dagger.Container.t(), String.t()) :: Dagger.Env.t()
def with_container_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withContainerInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Container output to be assigned in the environment
"""
@spec with_container_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_container_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withContainerOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Installs the current module into the environment, exposing its functions to the model
Contextual path arguments will be populated using the environment's workspace.
"""
@spec with_current_module(t()) :: Dagger.Env.t()
def with_current_module(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("withCurrentModule")
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Directory in the environment
"""
@spec with_directory_input(t(), String.t(), Dagger.Directory.t(), String.t()) :: Dagger.Env.t()
def with_directory_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withDirectoryInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Directory output to be assigned in the environment
"""
@spec with_directory_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_directory_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withDirectoryOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type EnvFile in the environment
"""
@spec with_env_file_input(t(), String.t(), Dagger.EnvFile.t(), String.t()) :: Dagger.Env.t()
def with_env_file_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withEnvFileInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired EnvFile output to be assigned in the environment
"""
@spec with_env_file_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_env_file_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withEnvFileOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Env in the environment
"""
@spec with_env_input(t(), String.t(), Dagger.Env.t(), String.t()) :: Dagger.Env.t()
def with_env_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withEnvInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Env output to be assigned in the environment
"""
@spec with_env_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_env_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withEnvOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type File in the environment
"""
@spec with_file_input(t(), String.t(), Dagger.File.t(), String.t()) :: Dagger.Env.t()
def with_file_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withFileInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired File output to be assigned in the environment
"""
@spec with_file_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_file_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withFileOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type GitRef in the environment
"""
@spec with_git_ref_input(t(), String.t(), Dagger.GitRef.t(), String.t()) :: Dagger.Env.t()
def with_git_ref_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withGitRefInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired GitRef output to be assigned in the environment
"""
@spec with_git_ref_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_git_ref_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withGitRefOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type GitRepository in the environment
"""
@spec with_git_repository_input(t(), String.t(), Dagger.GitRepository.t(), String.t()) ::
Dagger.Env.t()
def with_git_repository_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withGitRepositoryInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired GitRepository output to be assigned in the environment
"""
@spec with_git_repository_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_git_repository_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withGitRepositoryOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type JSONValue in the environment
"""
@spec with_json_value_input(t(), String.t(), Dagger.JSONValue.t(), String.t()) :: Dagger.Env.t()
def with_json_value_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withJSONValueInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired JSONValue output to be assigned in the environment
"""
@spec with_json_value_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_json_value_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withJSONValueOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Installs a module into the environment, exposing its functions to the model
Contextual path arguments will be populated using the environment's workspace.
"""
@spec with_module(t(), Dagger.Module.t()) :: Dagger.Env.t()
def with_module(%__MODULE__{} = env, module) do
query_builder =
env.query_builder |> QB.select("withModule") |> QB.put_arg("module", Dagger.ID.id!(module))
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type ModuleConfigClient in the environment
"""
@spec with_module_config_client_input(
t(),
String.t(),
Dagger.ModuleConfigClient.t(),
String.t()
) :: Dagger.Env.t()
def with_module_config_client_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withModuleConfigClientInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired ModuleConfigClient output to be assigned in the environment
"""
@spec with_module_config_client_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_module_config_client_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withModuleConfigClientOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Module in the environment
"""
@spec with_module_input(t(), String.t(), Dagger.Module.t(), String.t()) :: Dagger.Env.t()
def with_module_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withModuleInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Module output to be assigned in the environment
"""
@spec with_module_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_module_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withModuleOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type ModuleSource in the environment
"""
@spec with_module_source_input(t(), String.t(), Dagger.ModuleSource.t(), String.t()) ::
Dagger.Env.t()
def with_module_source_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withModuleSourceInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired ModuleSource output to be assigned in the environment
"""
@spec with_module_source_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_module_source_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withModuleSourceOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type SearchResult in the environment
"""
@spec with_search_result_input(t(), String.t(), Dagger.SearchResult.t(), String.t()) ::
Dagger.Env.t()
def with_search_result_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withSearchResultInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired SearchResult output to be assigned in the environment
"""
@spec with_search_result_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_search_result_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withSearchResultOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type SearchSubmatch in the environment
"""
@spec with_search_submatch_input(t(), String.t(), Dagger.SearchSubmatch.t(), String.t()) ::
Dagger.Env.t()
def with_search_submatch_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withSearchSubmatchInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired SearchSubmatch output to be assigned in the environment
"""
@spec with_search_submatch_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_search_submatch_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withSearchSubmatchOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Secret in the environment
"""
@spec with_secret_input(t(), String.t(), Dagger.Secret.t(), String.t()) :: Dagger.Env.t()
def with_secret_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withSecretInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Secret output to be assigned in the environment
"""
@spec with_secret_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_secret_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withSecretOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Service in the environment
"""
@spec with_service_input(t(), String.t(), Dagger.Service.t(), String.t()) :: Dagger.Env.t()
def with_service_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withServiceInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Service output to be assigned in the environment
"""
@spec with_service_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_service_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withServiceOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Create or update a binding of type Socket in the environment
"""
@spec with_socket_input(t(), String.t(), Dagger.Socket.t(), String.t()) :: Dagger.Env.t()
def with_socket_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withSocketInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", Dagger.ID.id!(value))
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declare a desired Socket output to be assigned in the environment
"""
@spec with_socket_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_socket_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withSocketOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Provides a string input binding to the environment
"""
@spec with_string_input(t(), String.t(), String.t(), String.t()) :: Dagger.Env.t()
def with_string_input(%__MODULE__{} = env, name, value, description) do
query_builder =
env.query_builder
|> QB.select("withStringInput")
|> QB.put_arg("name", name)
|> QB.put_arg("value", value)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Declares a desired string output binding
"""
@spec with_string_output(t(), String.t(), String.t()) :: Dagger.Env.t()
def with_string_output(%__MODULE__{} = env, name, description) do
query_builder =
env.query_builder
|> QB.select("withStringOutput")
|> QB.put_arg("name", name)
|> QB.put_arg("description", description)
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Returns a new environment with the provided workspace
"""
@spec with_workspace(t(), Dagger.Directory.t()) :: Dagger.Env.t()
def with_workspace(%__MODULE__{} = env, workspace) do
query_builder =
env.query_builder
|> QB.select("withWorkspace")
|> QB.put_arg("workspace", Dagger.ID.id!(workspace))
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@doc """
Returns a new environment without any outputs
"""
@spec without_outputs(t()) :: Dagger.Env.t()
def without_outputs(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("withoutOutputs")
%Dagger.Env{
query_builder: query_builder,
client: env.client
}
end
@spec workspace(t()) :: Dagger.Directory.t()
def workspace(%__MODULE__{} = env) do
query_builder =
env.query_builder |> QB.select("workspace")
%Dagger.Directory{
query_builder: query_builder,
client: env.client
}
end
end
defimpl Jason.Encoder, for: Dagger.Env do
def encode(env, opts) do
{:ok, id} = Dagger.Env.id(env)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Env do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_env_from_id(Dagger.Global.dag(), id)}
end
end