# `Cuerdo.Arazzo`

Arazzo workflows runner and validation.

# `run_workflow`

```elixir
@spec run_workflow(any(), String.t(), map() | Cuerdo.Arazzo.Context.t()) ::
  {:ok, Cuerdo.Arazzo.Context.t()} | {:error, Cuerdo.Errors.ExecutionError.t()}
```

# `run_workflow`

```elixir
@spec run_workflow(any(), String.t(), map(), Keyword.t()) ::
  {:ok, Cuerdo.Arazzo.Context.t()} | {:error, Exception.t()}
```

Runs the workflowId with the given inputs from the Arazzo document.

Returns `{:ok, context}` on success with each step requests and responses,
or an `{:error, reason}`.

## Options

- `:resolver` - The JSON Schema resolver to use for validating workflow inputs and request/response schemas.
See [JSV Resolvers](`e:jsv:resolvers.html`)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
