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

pub type Client {
  Client(config: Config, transport: Transport)
}

Constructors

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

pub type ListOptions {
  ListOptions(namespace: option.Option(String))
}

Constructors

pub type ListRequest {
  ListRequest(options: ListOptions)
}

Constructors

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

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

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

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

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 WorkflowHandle {
  WorkflowHandle(
    client: Client,
    workflow_id: String,
    run_id: String,
  )
}

Constructors

  • WorkflowHandle(
      client: Client,
      workflow_id: String,
      run_id: 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)
Search Document