-module(dagger@dsl@host). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/dagger/dsl/host.gleam"). -export([none/1, opt_exclude/2, opt_include/2, opt_no_cache/2, opt_gitignore/2, opt_host/2, opt_native/2, opt_ports/2, host/0, container_image/2, directory/3, file/3, find_up/5, id/1, service/3, tunnel/3, unix_socket/2]). -export_type([for_tunnel/0, for_service/0, for_directory/0, opts/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type for_tunnel() :: any(). -type for_service() :: any(). -type for_directory() :: any(). -opaque opts(AAPG) :: {opts, gleam@option:option(list(binary())), gleam@option:option(list(binary())), gleam@option:option(boolean()), gleam@option:option(boolean()), gleam@option:option(binary()), gleam@option:option(boolean()), gleam@option:option(list(dagger@dsl@types:port_forward()))} | {gleam_phantom, AAPG}. -file("src/dagger/dsl/host.gleam", 26). -spec defaults() -> opts(any()). defaults() -> {opts, none, none, none, none, none, none, none}. -file("src/dagger/dsl/host.gleam", 38). -spec none(opts(AAPJ)) -> opts(AAPJ). none(Opts) -> Opts. -file("src/dagger/dsl/host.gleam", 42). -spec opt_exclude(opts(for_directory()), list(binary())) -> opts(for_directory()). opt_exclude(Opts, Val) -> {opts, {some, Val}, erlang:element(3, Opts), erlang:element(4, Opts), erlang:element(5, Opts), erlang:element(6, Opts), erlang:element(7, Opts), erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 46). -spec opt_include(opts(for_directory()), list(binary())) -> opts(for_directory()). opt_include(Opts, Val) -> {opts, erlang:element(2, Opts), {some, Val}, erlang:element(4, Opts), erlang:element(5, Opts), erlang:element(6, Opts), erlang:element(7, Opts), erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 50). -spec opt_no_cache(opts(AAPS), boolean()) -> opts(AAPS). opt_no_cache(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), {some, Val}, erlang:element(5, Opts), erlang:element(6, Opts), erlang:element(7, Opts), erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 54). -spec opt_gitignore(opts(for_directory()), boolean()) -> opts(for_directory()). opt_gitignore(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), erlang:element(4, Opts), {some, Val}, erlang:element(6, Opts), erlang:element(7, Opts), erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 58). -spec opt_host(opts(for_service()), binary()) -> opts(for_service()). opt_host(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), erlang:element(4, Opts), erlang:element(5, Opts), {some, Val}, erlang:element(7, Opts), erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 62). -spec opt_native(opts(for_tunnel()), boolean()) -> opts(for_tunnel()). opt_native(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), erlang:element(4, Opts), erlang:element(5, Opts), erlang:element(6, Opts), {some, Val}, erlang:element(8, Opts)}. -file("src/dagger/dsl/host.gleam", 66). -spec opt_ports(opts(for_tunnel()), list(dagger@dsl@types:port_forward())) -> opts(for_tunnel()). opt_ports(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), erlang:element(4, Opts), erlang:element(5, Opts), erlang:element(6, Opts), erlang:element(7, Opts), {some, Val}}. -file("src/dagger/dsl/host.gleam", 70). -spec host() -> dagger@dsl@types:host(). host() -> Field = {field, <<"host"/utf8>>, [], []}, {host, {pure, [Field]}}. -file("src/dagger/dsl/host.gleam", 76). ?DOC(" Accesses a container image on the host.\n"). -spec container_image(dagger@dsl@types:host(), binary()) -> dagger@dsl@types:container(). container_image(Parent, Name) -> Field = {field, <<"containerImage"/utf8>>, [{<<"name"/utf8>>, {g_string, Name}}], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {container, New_op}. -file("src/dagger/dsl/host.gleam", 85). -spec encode_directory(opts(any())) -> list({binary(), dagger@types:value()}). encode_directory(Opts) -> gleam@list:filter_map([case erlang:element(2, Opts) of {some, Val} -> {ok, {<<"exclude"/utf8>>, {g_list, gleam@list:map(Val, fun(X) -> {g_string, X} end)}}}; none -> {error, nil} end, case erlang:element(3, Opts) of {some, Val@1} -> {ok, {<<"include"/utf8>>, {g_list, gleam@list:map( Val@1, fun(X@1) -> {g_string, X@1} end )}}}; none -> {error, nil} end, case erlang:element(4, Opts) of {some, Val@2} -> {ok, {<<"noCache"/utf8>>, {g_bool, Val@2}}}; none -> {error, nil} end, case erlang:element(5, Opts) of {some, Val@3} -> {ok, {<<"gitignore"/utf8>>, {g_bool, Val@3}}}; none -> {error, nil} end], fun(X@2) -> X@2 end). -file("src/dagger/dsl/host.gleam", 107). ?DOC(" Accesses a directory on the host.\n"). -spec directory( dagger@dsl@types:host(), binary(), fun((opts(for_directory())) -> opts(for_directory())) ) -> dagger@dsl@types:directory(). directory(Parent, Path, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"directory"/utf8>>, lists:append( [{<<"path"/utf8>>, {g_string, Path}}], encode_directory(Opts) ), []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {directory, New_op}. -file("src/dagger/dsl/host.gleam", 117). -spec encode_file(opts(any())) -> list({binary(), dagger@types:value()}). encode_file(Opts) -> gleam@list:filter_map([case erlang:element(4, Opts) of {some, Val} -> {ok, {<<"noCache"/utf8>>, {g_bool, Val}}}; none -> {error, nil} end], fun(X) -> X end). -file("src/dagger/dsl/host.gleam", 127). ?DOC(" Accesses a file on the host.\n"). -spec file(dagger@dsl@types:host(), binary(), fun((opts(AAQM)) -> opts(AAQM))) -> dagger@dsl@types:file(). file(Parent, Path, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"file"/utf8>>, lists:append([{<<"path"/utf8>>, {g_string, Path}}], encode_file(Opts)), []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {file, New_op}. -file("src/dagger/dsl/host.gleam", 137). -spec encode_find_up(opts(any())) -> list({binary(), dagger@types:value()}). encode_find_up(Opts) -> gleam@list:filter_map([case erlang:element(4, Opts) of {some, Val} -> {ok, {<<"noCache"/utf8>>, {g_bool, Val}}}; none -> {error, nil} end], fun(X) -> X end). -file("src/dagger/dsl/host.gleam", 147). ?DOC(" Search for a file or directory by walking up the tree from system workdir. Return its relative path. If no match, return null\n"). -spec find_up( dagger@dsl@types:host(), binary(), fun((opts(AAQS)) -> opts(AAQS)), dagger@types:client(), fun(({ok, binary()} | {error, dagger@types:query_error()}) -> AAQS) ) -> AAQS. find_up(Parent, Name, With_fn, Client, Handler) -> Opts = With_fn(defaults()), Field = {field, <<"findUp"/utf8>>, lists:append( [{<<"name"/utf8>>, {g_string, Name}}], encode_find_up(Opts) ), []}, Op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> Full_query = lists:append(Q, [Field]), {fetch, Full_query, {decoder, fun gleam@dynamic@decode:decode_dynamic/1}, fun(Dyn) -> Path = dagger@types:make_path(Full_query), case gleam@dynamic@decode:run( Dyn, gleam@dynamic@decode:at( Path, {decoder, fun gleam@dynamic@decode:decode_string/1} ) ) of {ok, Val} -> {pure, {ok, Val}}; {error, _} -> {pure, {error, {decoding_error, <<"findUp"/utf8>>}}} end end} end ) end, Handler(dagger@interpreter:run(Op, Client)). -file("src/dagger/dsl/host.gleam", 169). ?DOC(" A unique identifier for this Host.\n"). -spec id(dagger@dsl@types:host()) -> dagger@dsl@types:host(). id(Parent) -> Field = {field, <<"id"/utf8>>, [], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {host, New_op}. -file("src/dagger/dsl/host.gleam", 178). -spec encode_service(opts(any())) -> list({binary(), dagger@types:value()}). encode_service(Opts) -> gleam@list:filter_map([case erlang:element(6, Opts) of {some, Val} -> {ok, {<<"host"/utf8>>, {g_string, Val}}}; none -> {error, nil} end], fun(X) -> X end). -file("src/dagger/dsl/host.gleam", 188). ?DOC(" Creates a service that forwards traffic to a specified address via the host.\n"). -spec service( dagger@dsl@types:host(), list(dagger@dsl@types:port_forward()), fun((opts(for_service())) -> opts(for_service())) ) -> dagger@dsl@types:service(). service(Parent, Ports, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"service"/utf8>>, lists:append( [{<<"ports"/utf8>>, {g_list, gleam@list:map( Ports, fun(X) -> {g_object, dagger@dsl@types:port_forward_to_json(X)} end )}}], encode_service(Opts) ), []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {service, New_op}. -file("src/dagger/dsl/host.gleam", 198). -spec encode_tunnel(opts(any())) -> list({binary(), dagger@types:value()}). encode_tunnel(Opts) -> gleam@list:filter_map([case erlang:element(7, Opts) of {some, Val} -> {ok, {<<"native"/utf8>>, {g_bool, Val}}}; none -> {error, nil} end, case erlang:element(8, Opts) of {some, Val@1} -> {ok, {<<"ports"/utf8>>, {g_list, gleam@list:map( Val@1, fun(X) -> {g_object, dagger@dsl@types:port_forward_to_json( X )} end )}}}; none -> {error, nil} end], fun(X@1) -> X@1 end). -file("src/dagger/dsl/host.gleam", 212). ?DOC(" Creates a tunnel that forwards traffic from the host to a service.\n"). -spec tunnel( dagger@dsl@types:host(), dagger@dsl@types:service(), fun((opts(for_tunnel())) -> opts(for_tunnel())) ) -> dagger@dsl@types:service(). tunnel(Parent, Service, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"tunnel"/utf8>>, lists:append( [{<<"service"/utf8>>, {g_deferred, erlang:element(2, Service)}}], encode_tunnel(Opts) ), []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {service, New_op}. -file("src/dagger/dsl/host.gleam", 223). ?DOC(" Accesses a Unix socket on the host.\n"). -spec unix_socket(dagger@dsl@types:host(), binary()) -> dagger@dsl@types:socket(). unix_socket(Parent, Path) -> Field = {field, <<"unixSocket"/utf8>>, [{<<"path"/utf8>>, {g_string, Path}}], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {socket, New_op}.