-module(aion_client@handle).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aion_client/handle.gleam").
-export([new/3, signal_raw/3, signal/4, query_raw/4, 'query'/5, query_payload/3, cancel/2, describe/1, subscribe/2, with_run_id/2, run_id/1, workflow_id/1, target_run/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" WorkflowHandle and per-workflow operations.\n").
-file("src/aion_client/handle.gleam", 11).
-spec new(aion_client:client(), binary(), binary()) -> aion_client:workflow_handle().
new(Client, Workflow_id, Run_id) ->
{workflow_handle, Client, Workflow_id, Run_id}.
-file("src/aion_client/handle.gleam", 32).
-spec signal_raw(
aion_client:workflow_handle(),
binary(),
aion_client@payload:payload()
) -> {ok, nil} | {error, aion_client@error:error()}.
signal_raw(Handle, Signal_name, Input) ->
{workflow_handle, Client, Workflow_id, Run_id} = Handle,
aion_client:signal_raw(
Client,
{signal_options, Workflow_id, {some, Run_id}, Signal_name},
Input
).
-file("src/aion_client/handle.gleam", 23).
-spec signal(
aion_client:workflow_handle(),
binary(),
FNE,
fun((FNE) -> gleam@json:json())
) -> {ok, nil} | {error, aion_client@error:error()}.
signal(Handle, Signal_name, Input, Encoder) ->
signal_raw(Handle, Signal_name, aion_client@payload:encode(Input, Encoder)).
-file("src/aion_client/handle.gleam", 63).
-spec query_raw(
aion_client:workflow_handle(),
binary(),
aion_client@payload:payload(),
gleam@dynamic@decode:decoder(FNO)
) -> {ok, FNO} | {error, aion_client@error:error()}.
query_raw(Handle, Query_name, Args, Decoder) ->
{workflow_handle, Client, Workflow_id, Run_id} = Handle,
aion_client:query_raw(
Client,
{query_options, Workflow_id, {some, Run_id}, Query_name},
Args,
Decoder
).
-file("src/aion_client/handle.gleam", 53).
-spec 'query'(
aion_client:workflow_handle(),
binary(),
FNJ,
fun((FNJ) -> gleam@json:json()),
gleam@dynamic@decode:decoder(FNK)
) -> {ok, FNK} | {error, aion_client@error:error()}.
'query'(Handle, Query_name, Args, Encoder, Decoder) ->
query_raw(
Handle,
Query_name,
aion_client@payload:encode(Args, Encoder),
Decoder
).
-file("src/aion_client/handle.gleam", 86).
-spec query_payload(
aion_client:workflow_handle(),
binary(),
aion_client@payload:payload()
) -> {ok, aion_client@payload:payload()} | {error, aion_client@error:error()}.
query_payload(Handle, Query_name, Args) ->
{workflow_handle, Client, Workflow_id, Run_id} = Handle,
aion_client:query_payload(
Client,
{query_options, Workflow_id, {some, Run_id}, Query_name},
Args
).
-file("src/aion_client/handle.gleam", 107).
-spec cancel(aion_client:workflow_handle(), binary()) -> {ok, nil} |
{error, aion_client@error:error()}.
cancel(Handle, Reason) ->
{workflow_handle, Client, Workflow_id, Run_id} = Handle,
aion_client:cancel(
Client,
{cancel_options, Workflow_id, {some, Run_id}, Reason}
).
-file("src/aion_client/handle.gleam", 126).
-spec describe(aion_client:workflow_handle()) -> {ok,
aion_client:workflow_description()} |
{error, aion_client@error:error()}.
describe(Handle) ->
{workflow_handle, Client, Workflow_id, Run_id} = Handle,
aion_client:describe(
Client,
{describe_options, Workflow_id, {some, Run_id}}
).
-file("src/aion_client/handle.gleam", 140).
-spec subscribe(
aion_client:workflow_handle(),
gleam@dynamic@decode:decoder(FNY)
) -> aion_client@stream:event_stream(FNY).
subscribe(Handle, Decoder) ->
aion_client@stream:subscribe(Handle, Decoder).
-file("src/aion_client/handle.gleam", 147).
-spec with_run_id(aion_client:workflow_handle(), binary()) -> aion_client:workflow_handle().
with_run_id(Handle, Run_id) ->
{workflow_handle, Client, Workflow_id, _} = Handle,
{workflow_handle, Client, Workflow_id, Run_id}.
-file("src/aion_client/handle.gleam", 160).
-spec run_id(aion_client:workflow_handle()) -> binary().
run_id(Handle) ->
{workflow_handle, _, _, Run_id} = Handle,
Run_id.
-file("src/aion_client/handle.gleam", 165).
-spec workflow_id(aion_client:workflow_handle()) -> binary().
workflow_id(Handle) ->
{workflow_handle, _, Workflow_id, _} = Handle,
Workflow_id.
-file("src/aion_client/handle.gleam", 170).
-spec target_run(gleam@option:option(binary()), aion_client:workflow_handle()) -> aion_client:workflow_handle().
target_run(Run_id, Handle) ->
case Run_id of
{some, Run_id@1} ->
with_run_id(Handle, Run_id@1);
none ->
Handle
end.