Packages
dagger
0.19.2
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/engine_cache.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.EngineCache do
@moduledoc """
A cache storage for the Dagger engine
"""
use Dagger.Core.Base, kind: :object, name: "EngineCache"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
The current set of entries in the cache
"""
@spec entry_set(t(), [{:key, String.t() | nil}]) :: Dagger.EngineCacheEntrySet.t()
def entry_set(%__MODULE__{} = engine_cache, optional_args \\ []) do
query_builder =
engine_cache.query_builder
|> QB.select("entrySet")
|> QB.maybe_put_arg("key", optional_args[:key])
%Dagger.EngineCacheEntrySet{
query_builder: query_builder,
client: engine_cache.client
}
end
@doc """
A unique identifier for this EngineCache.
"""
@spec id(t()) :: {:ok, Dagger.EngineCacheID.t()} | {:error, term()}
def id(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("id")
Client.execute(engine_cache.client, query_builder)
end
@doc """
The maximum bytes to keep in the cache without pruning.
"""
@spec max_used_space(t()) :: {:ok, integer()} | {:error, term()}
def max_used_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("maxUsedSpace")
Client.execute(engine_cache.client, query_builder)
end
@doc """
The target amount of free disk space the garbage collector will attempt to leave.
"""
@spec min_free_space(t()) :: {:ok, integer()} | {:error, term()}
def min_free_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("minFreeSpace")
Client.execute(engine_cache.client, query_builder)
end
@doc """
Prune the cache of releaseable entries
"""
@spec prune(t(), [{:use_default_policy, boolean() | nil}]) :: :ok | {:error, term()}
def prune(%__MODULE__{} = engine_cache, optional_args \\ []) do
query_builder =
engine_cache.query_builder
|> QB.select("prune")
|> QB.maybe_put_arg("useDefaultPolicy", optional_args[:use_default_policy])
case Client.execute(engine_cache.client, query_builder) do
{:ok, _} -> :ok
error -> error
end
end
@doc """
The minimum amount of disk space this policy is guaranteed to retain.
"""
@spec reserved_space(t()) :: {:ok, integer()} | {:error, term()}
def reserved_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("reservedSpace")
Client.execute(engine_cache.client, query_builder)
end
@doc """
The target number of bytes to keep when pruning.
"""
@spec target_space(t()) :: {:ok, integer()} | {:error, term()}
def target_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("targetSpace")
Client.execute(engine_cache.client, query_builder)
end
end
defimpl Jason.Encoder, for: Dagger.EngineCache do
def encode(engine_cache, opts) do
{:ok, id} = Dagger.EngineCache.id(engine_cache)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.EngineCache do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_engine_cache_from_id(Dagger.Global.dag(), id)}
end
end