Packages
dagger
0.15.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/file.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.File do
@moduledoc "A file."
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
@derive Dagger.Sync
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc "Retrieves the contents of the file."
@spec contents(t()) :: {:ok, String.t()} | {:error, term()}
def contents(%__MODULE__{} = file) do
query_builder =
file.query_builder |> QB.select("contents")
Client.execute(file.client, query_builder)
end
@doc "Return the file's digest. The format of the digest is not guaranteed to be stable between releases of Dagger. It is guaranteed to be stable between invocations of the same Dagger engine."
@spec digest(t(), [{:exclude_metadata, boolean() | nil}]) ::
{:ok, String.t()} | {:error, term()}
def digest(%__MODULE__{} = file, optional_args \\ []) do
query_builder =
file.query_builder
|> QB.select("digest")
|> QB.maybe_put_arg("excludeMetadata", optional_args[:exclude_metadata])
Client.execute(file.client, query_builder)
end
@doc "Writes the file to a file path on the host."
@spec export(t(), String.t(), [{:allow_parent_dir_path, boolean() | nil}]) ::
{:ok, String.t()} | {:error, term()}
def export(%__MODULE__{} = file, path, optional_args \\ []) do
query_builder =
file.query_builder
|> QB.select("export")
|> QB.put_arg("path", path)
|> QB.maybe_put_arg("allowParentDirPath", optional_args[:allow_parent_dir_path])
Client.execute(file.client, query_builder)
end
@doc "A unique identifier for this File."
@spec id(t()) :: {:ok, Dagger.FileID.t()} | {:error, term()}
def id(%__MODULE__{} = file) do
query_builder =
file.query_builder |> QB.select("id")
Client.execute(file.client, query_builder)
end
@doc "Retrieves the name of the file."
@spec name(t()) :: {:ok, String.t()} | {:error, term()}
def name(%__MODULE__{} = file) do
query_builder =
file.query_builder |> QB.select("name")
Client.execute(file.client, query_builder)
end
@doc "Retrieves the size of the file, in bytes."
@spec size(t()) :: {:ok, integer()} | {:error, term()}
def size(%__MODULE__{} = file) do
query_builder =
file.query_builder |> QB.select("size")
Client.execute(file.client, query_builder)
end
@doc "Force evaluation in the engine."
@spec sync(t()) :: {:ok, Dagger.File.t()} | {:error, term()}
def sync(%__MODULE__{} = file) do
query_builder =
file.query_builder |> QB.select("sync")
with {:ok, id} <- Client.execute(file.client, query_builder) do
{:ok,
%Dagger.File{
query_builder:
QB.query()
|> QB.select("loadFileFromID")
|> QB.put_arg("id", id),
client: file.client
}}
end
end
@doc "Retrieves this file with its name set to the given name."
@spec with_name(t(), String.t()) :: Dagger.File.t()
def with_name(%__MODULE__{} = file, name) do
query_builder =
file.query_builder |> QB.select("withName") |> QB.put_arg("name", name)
%Dagger.File{
query_builder: query_builder,
client: file.client
}
end
@doc "Retrieves this file with its created/modified timestamps set to the given time."
@spec with_timestamps(t(), integer()) :: Dagger.File.t()
def with_timestamps(%__MODULE__{} = file, timestamp) do
query_builder =
file.query_builder |> QB.select("withTimestamps") |> QB.put_arg("timestamp", timestamp)
%Dagger.File{
query_builder: query_builder,
client: file.client
}
end
end