Packages
dagger
0.21.6
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/terminal.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Terminal do
@moduledoc """
An interactive terminal that clients can connect to.
"""
use Dagger.Core.Base, kind: :object, name: "Terminal"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
@derive Dagger.Sync
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
A unique identifier for this Terminal.
"""
@spec id(t()) :: {:ok, String.t()} | {:error, term()}
def id(%__MODULE__{} = terminal) do
query_builder =
terminal.query_builder |> QB.select("id")
Client.execute(terminal.client, query_builder)
end
@doc """
Forces evaluation of the pipeline in the engine.
It doesn't run the default command if no exec has been set.
"""
@spec sync(t()) :: {:ok, Dagger.Terminal.t()} | {:error, term()}
def sync(%__MODULE__{} = terminal) do
query_builder =
terminal.query_builder |> QB.select("sync")
with {:ok, id} <- Client.execute(terminal.client, query_builder) do
{:ok,
%Dagger.Terminal{
query_builder:
QB.query()
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("Terminal"),
client: terminal.client
}}
end
end
end
defimpl Jason.Encoder, for: Dagger.Terminal do
def encode(terminal, opts) do
{:ok, id} = Dagger.Terminal.id(terminal)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Terminal do
def decode_fields_hint(_struct, _context, id) do
alias Dagger.Core.QueryBuilder, as: QB
dag = Dagger.Global.dag()
{:ok,
%Dagger.Terminal{
query_builder:
dag.query_builder
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("Terminal"),
client: dag.client
}}
end
end