-module(dagger@dsl@address). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/dagger/dsl/address.gleam"). -export([none/1, exclude/2, include/2, gitignore/2, no_cache/2, address/1, container/1, directory/2, file/2, git_ref/1, git_repository/1, id/1, secret/1, service/1, socket/1, value/3]). -export_type([opts/0]). -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 opts() :: {opts, gleam@option:option(list(binary())), gleam@option:option(list(binary())), gleam@option:option(boolean()), gleam@option:option(boolean())}. -file("src/dagger/dsl/address.gleam", 19). -spec defaults() -> opts(). defaults() -> {opts, none, none, none, none}. -file("src/dagger/dsl/address.gleam", 28). -spec none(opts()) -> opts(). none(Opts) -> Opts. -file("src/dagger/dsl/address.gleam", 32). -spec exclude(opts(), list(binary())) -> opts(). exclude(Opts, Val) -> {opts, {some, Val}, erlang:element(3, Opts), erlang:element(4, Opts), erlang:element(5, Opts)}. -file("src/dagger/dsl/address.gleam", 36). -spec include(opts(), list(binary())) -> opts(). include(Opts, Val) -> {opts, erlang:element(2, Opts), {some, Val}, erlang:element(4, Opts), erlang:element(5, Opts)}. -file("src/dagger/dsl/address.gleam", 40). -spec gitignore(opts(), boolean()) -> opts(). gitignore(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), {some, Val}, erlang:element(5, Opts)}. -file("src/dagger/dsl/address.gleam", 44). -spec no_cache(opts(), boolean()) -> opts(). no_cache(Opts, Val) -> {opts, erlang:element(2, Opts), erlang:element(3, Opts), erlang:element(4, Opts), {some, Val}}. -file("src/dagger/dsl/address.gleam", 48). -spec address(binary()) -> dagger@dsl@types:address(). address(Value) -> Field = {field, <<"address"/utf8>>, [{<<"value"/utf8>>, {g_string, Value}}], []}, {address, {pure, [Field]}}. -file("src/dagger/dsl/address.gleam", 54). ?DOC(" Load a container from the address.\n"). -spec container(dagger@dsl@types:address()) -> dagger@dsl@types:container(). container(Parent) -> Field = {field, <<"container"/utf8>>, [], []}, 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/address.gleam", 63). -spec encode_directory(opts()) -> 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, {<<"gitignore"/utf8>>, {g_bool, Val@2}}}; none -> {error, nil} end, case erlang:element(5, Opts) of {some, Val@3} -> {ok, {<<"noCache"/utf8>>, {g_bool, Val@3}}}; none -> {error, nil} end], fun(X@2) -> X@2 end). -file("src/dagger/dsl/address.gleam", 85). ?DOC(" Load a directory from the address.\n"). -spec directory(dagger@dsl@types:address(), fun((opts()) -> opts())) -> dagger@dsl@types:directory(). directory(Parent, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"directory"/utf8>>, 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/address.gleam", 95). -spec encode_file(opts()) -> list({binary(), dagger@types:value()}). encode_file(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, {<<"gitignore"/utf8>>, {g_bool, Val@2}}}; none -> {error, nil} end, case erlang:element(5, Opts) of {some, Val@3} -> {ok, {<<"noCache"/utf8>>, {g_bool, Val@3}}}; none -> {error, nil} end], fun(X@2) -> X@2 end). -file("src/dagger/dsl/address.gleam", 117). ?DOC(" Load a file from the address.\n"). -spec file(dagger@dsl@types:address(), fun((opts()) -> opts())) -> dagger@dsl@types:file(). file(Parent, With_fn) -> Opts = With_fn(defaults()), Field = {field, <<"file"/utf8>>, 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/address.gleam", 128). ?DOC(" Load a git ref (branch, tag or commit) from the address.\n"). -spec git_ref(dagger@dsl@types:address()) -> dagger@dsl@types:git_ref(). git_ref(Parent) -> Field = {field, <<"gitRef"/utf8>>, [], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {git_ref, New_op}. -file("src/dagger/dsl/address.gleam", 138). ?DOC(" Load a git repository from the address.\n"). -spec git_repository(dagger@dsl@types:address()) -> dagger@dsl@types:git_repository(). git_repository(Parent) -> Field = {field, <<"gitRepository"/utf8>>, [], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {git_repository, New_op}. -file("src/dagger/dsl/address.gleam", 148). ?DOC(" A unique identifier for this Address.\n"). -spec id(dagger@dsl@types:address()) -> dagger@dsl@types:address(). 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, {address, New_op}. -file("src/dagger/dsl/address.gleam", 158). ?DOC(" Load a secret from the address.\n"). -spec secret(dagger@dsl@types:address()) -> dagger@dsl@types:secret(). secret(Parent) -> Field = {field, <<"secret"/utf8>>, [], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {secret, New_op}. -file("src/dagger/dsl/address.gleam", 168). ?DOC(" Load a service from the address.\n"). -spec service(dagger@dsl@types:address()) -> dagger@dsl@types:service(). service(Parent) -> Field = {field, <<"service"/utf8>>, [], []}, 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/address.gleam", 178). ?DOC(" Load a local socket from the address.\n"). -spec socket(dagger@dsl@types:address()) -> dagger@dsl@types:socket(). socket(Parent) -> Field = {field, <<"socket"/utf8>>, [], []}, New_op = begin dagger@types:bind( erlang:element(2, Parent), fun(Q) -> {pure, lists:append(Q, [Field])} end ) end, {socket, New_op}. -file("src/dagger/dsl/address.gleam", 188). ?DOC(" The address value\n"). -spec value( dagger@dsl@types:address(), dagger@types:client(), fun(({ok, binary()} | {error, dagger@types:query_error()}) -> GAT) ) -> GAT. value(Parent, Client, Handler) -> Field = {field, <<"value"/utf8>>, [], []}, 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, <<"value"/utf8>>}}} end end} end ) end, Handler(dagger@interpreter:run(Op, Client)).