aion_client
Caller-side SDK for aion-server workflow operations.
Types
pub type CancelOptions {
CancelOptions(
workflow_id: String,
run_id: option.Option(String),
reason: String,
)
}
Constructors
-
CancelOptions( workflow_id: String, run_id: option.Option(String), reason: String, )
pub type CancelRequest {
CancelRequest(options: CancelOptions)
}
Constructors
-
CancelRequest(options: CancelOptions)
pub type Config {
Config(
endpoint: String,
bearer_token: option.Option(String),
namespace: String,
tls: Bool,
)
}
Constructors
-
Config( endpoint: String, bearer_token: option.Option(String), namespace: String, tls: Bool, )
pub type DescribeOptions {
DescribeOptions(
workflow_id: String,
run_id: option.Option(String),
)
}
Constructors
-
DescribeOptions( workflow_id: String, run_id: option.Option(String), )
pub type DescribeRequest {
DescribeRequest(options: DescribeOptions)
}
Constructors
-
DescribeRequest(options: DescribeOptions)
pub type ListOptions {
ListOptions(namespace: option.Option(String))
}
Constructors
-
ListOptions(namespace: option.Option(String))
pub type ListRequest {
ListRequest(options: ListOptions)
}
Constructors
-
ListRequest(options: ListOptions)
pub type QueryOptions {
QueryOptions(
workflow_id: String,
run_id: option.Option(String),
query_name: String,
)
}
Constructors
-
QueryOptions( workflow_id: String, run_id: option.Option(String), query_name: String, )
pub type QueryRequest {
QueryRequest(options: QueryOptions, args: payload.Payload)
}
Constructors
-
QueryRequest(options: QueryOptions, args: payload.Payload)
pub type SignalOptions {
SignalOptions(
workflow_id: String,
run_id: option.Option(String),
signal_name: String,
)
}
Constructors
-
SignalOptions( workflow_id: String, run_id: option.Option(String), signal_name: String, )
pub type SignalRequest {
SignalRequest(options: SignalOptions, input: payload.Payload)
}
Constructors
-
SignalRequest(options: SignalOptions, input: payload.Payload)
pub type StartOptions {
StartOptions(
workflow_id: String,
workflow_type: String,
task_queue: String,
idempotency_key: option.Option(String),
)
}
Constructors
-
StartOptions( workflow_id: String, workflow_type: String, task_queue: String, idempotency_key: option.Option(String), )
pub type StartRequest {
StartRequest(options: StartOptions, input: payload.Payload)
}
Constructors
-
StartRequest(options: StartOptions, input: payload.Payload)
pub type StartResponse {
StartResponse(workflow_id: String, run_id: String)
}
Constructors
-
StartResponse(workflow_id: String, run_id: String)
pub type Transport {
Transport(
start: fn(Config, StartRequest) -> Result(
StartResponse,
error.Error,
),
signal: fn(Config, SignalRequest) -> Result(Nil, error.Error),
query: fn(Config, QueryRequest) -> Result(
payload.Payload,
error.Error,
),
cancel: fn(Config, CancelRequest) -> Result(Nil, error.Error),
list: fn(Config, ListRequest) -> Result(
List(WorkflowSummary),
error.Error,
),
describe: fn(Config, DescribeRequest) -> Result(
WorkflowDescription,
error.Error,
),
)
}
Constructors
-
Transport( start: fn(Config, StartRequest) -> Result( StartResponse, error.Error, ), signal: fn(Config, SignalRequest) -> Result(Nil, error.Error), query: fn(Config, QueryRequest) -> Result( payload.Payload, error.Error, ), cancel: fn(Config, CancelRequest) -> Result(Nil, error.Error), list: fn(Config, ListRequest) -> Result( List(WorkflowSummary), error.Error, ), describe: fn(Config, DescribeRequest) -> Result( WorkflowDescription, error.Error, ), )
pub type WorkflowDescription {
WorkflowDescription(
workflow_id: String,
run_id: String,
workflow_type: String,
status: String,
)
}
Constructors
-
WorkflowDescription( workflow_id: String, run_id: String, workflow_type: String, status: String, )
pub type WorkflowSummary {
WorkflowSummary(
workflow_id: String,
run_id: String,
workflow_type: String,
status: String,
)
}
Constructors
-
WorkflowSummary( workflow_id: String, run_id: String, workflow_type: String, status: String, )
Values
pub fn cancel(
client: Client,
options: CancelOptions,
) -> Result(Nil, error.Error)
pub fn connect(config: Config) -> Result(Client, error.Error)
Connect once to an aion-server deployment. The current implementation stores validated connection configuration and reuses it for all operations; concrete transport failures surface as operation Results, preserving branchable errors.
pub fn default_list_options(config: Config) -> ListOptions
pub fn describe(
client: Client,
options: DescribeOptions,
) -> Result(WorkflowDescription, error.Error)
pub fn latest_run(
run_id: option.Option(String),
default_run_id: String,
) -> String
pub fn list(
client: Client,
options: ListOptions,
) -> Result(List(WorkflowSummary), error.Error)
pub fn query(
client: Client,
options: QueryOptions,
args: args,
encoder: fn(args) -> json.Json,
decoder: decode.Decoder(result),
) -> Result(result, error.Error)
pub fn query_payload(
client: Client,
options: QueryOptions,
args: payload.Payload,
) -> Result(payload.Payload, error.Error)
pub fn query_raw(
client: Client,
options: QueryOptions,
args: payload.Payload,
decoder: decode.Decoder(result),
) -> Result(result, error.Error)
pub fn signal(
client: Client,
options: SignalOptions,
input: input,
encoder: fn(input) -> json.Json,
) -> Result(Nil, error.Error)
pub fn signal_raw(
client: Client,
options: SignalOptions,
input: payload.Payload,
) -> Result(Nil, error.Error)
pub fn start(
client: Client,
options: StartOptions,
input: input,
encoder: fn(input) -> json.Json,
) -> Result(WorkflowHandle, error.Error)
pub fn start_raw(
client: Client,
options: StartOptions,
input: payload.Payload,
) -> Result(WorkflowHandle, error.Error)
pub fn with_transport(
config: Config,
transport: Transport,
) -> Result(Client, error.Error)
Test/conformance hook for injecting an HTTP/WebSocket transport while keeping the public SDK semantics identical.
pub fn workflow_ids(
summaries: List(WorkflowSummary),
) -> List(String)