plinth/cloudflare/workflow

Types

pub type Backoff {
  Constant
  Linear
  Exponential
}

Constructors

  • Constant
  • Linear
  • Exponential
pub type CreateOptions {
  CreateOptions(id: option.Option(String), params: json.Json)
}

Constructors

pub type Duration {
  Milliseconds(Int)
  Seconds(Int)
  Minutes(Int)
  Hours(Int)
  Days(Int)
  Weeks(Int)
  Months(Int)
  Years(Int)
}

Constructors

  • Milliseconds(Int)
  • Seconds(Int)
  • Minutes(Int)
  • Hours(Int)
  • Days(Int)
  • Weeks(Int)
  • Months(Int)
  • Years(Int)
pub type Entrypoint
pub type InitialEvent(t) {
  InitialEvent(
    payload: t,
    timestamp: String,
    instance_id: String,
  )
}

Constructors

  • InitialEvent(payload: t, timestamp: String, instance_id: String)
pub type Instance
pub type InstanceStatus {
  InstanceStatus(
    status: String,
    error: option.Option(String),
    output: dynamic.Dynamic,
  )
}

Constructors

pub type Retries {
  Retries(limit: Int, delay: Duration, backoff: Backoff)
}

Constructors

pub type SentEvent(t) {
  SentEvent(type_: String, payload: t, timestamp: String)
}

Constructors

  • SentEvent(type_: String, payload: t, timestamp: String)
pub type Step
pub type StepConfig {
  StepConfig(
    retries: option.Option(Retries),
    timeout: option.Option(Duration),
  )
}

Constructors

pub type Workflow

Values

pub fn create(
  workflow: Workflow,
  options: CreateOptions,
) -> promise.Promise(Instance)
pub fn create_batch(
  workflow: Workflow,
  options: List(CreateOptions),
) -> promise.Promise(array.Array(Instance))
pub fn default() -> StepConfig
pub fn do(
  step: Step,
  name: String,
  config: StepConfig,
  callback: fn() -> promise.Promise(json.Json),
) -> promise.Promise(dynamic.Dynamic)
pub fn get(
  workflow: Workflow,
  id: String,
) -> promise.Promise(Result(Instance, String))
pub fn id(instance: Instance) -> String
pub fn initial_event_decoder(
  payload_decoder: decode.Decoder(a),
) -> decode.Decoder(InitialEvent(a))
pub fn pause(instance: Instance) -> promise.Promise(Nil)
pub fn restart(instance: Instance) -> promise.Promise(Nil)
pub fn resume(instance: Instance) -> promise.Promise(Nil)
pub fn send_event(
  instance: Instance,
  type_: String,
  payload: json.Json,
) -> promise.Promise(Nil)
pub fn sent_event_decoder(
  payload_decoder: decode.Decoder(a),
) -> decode.Decoder(SentEvent(a))
pub fn sleep(
  step: Step,
  name: String,
  duration: Duration,
) -> promise.Promise(Nil)
pub fn sleep_until(
  step: Step,
  name: String,
  until: Int,
) -> promise.Promise(Nil)
pub fn status(
  instance: Instance,
) -> promise.Promise(InstanceStatus)
pub fn terminate(instance: Instance) -> promise.Promise(Nil)
pub fn wait_for_event(
  step: Step,
  name: String,
  type_: String,
  timeout: option.Option(Duration),
) -> promise.Promise(Result(dynamic.Dynamic, String))

returns an error if it timed out

Search Document