# `ExJsonSchema.Schema`
[🔗](https://github.com/jonasschmidt/ex_json_schema/blob/v0.11.5/lib/ex_json_schema/schema.ex#L1)

# `invalid_reference_error`

```elixir
@type invalid_reference_error() :: {:error, :invalid_reference}
```

# `resolved`

```elixir
@type resolved() :: ExJsonSchema.data()
```

# `decode_json`

```elixir
@spec decode_json(String.t()) :: {:ok, String.t()} | {:error, String.t()}
```

# `get_fragment`

```elixir
@spec get_fragment(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.Schema.Ref.t() | ExJsonSchema.json_path()
) ::
  {:ok, resolved()} | invalid_reference_error() | no_return()
```

# `get_fragment!`

```elixir
@spec get_fragment!(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.Schema.Ref.t() | ExJsonSchema.json_path()
) :: resolved() | no_return()
```

# `get_ref_schema`

```elixir
@spec get_ref_schema(ExJsonSchema.Schema.Root.t(), ExJsonSchema.Schema.Ref.t()) ::
  ExJsonSchema.data() | no_return()
```

# `raise_invalid_reference_error`

```elixir
@spec raise_invalid_reference_error(any()) :: no_return()
```

# `resolve`

```elixir
@spec resolve(boolean() | ExJsonSchema.Schema.Root.t() | ExJsonSchema.object(), [
  {:custom_format_validator, {module(), atom()}}
]) :: ExJsonSchema.Schema.Root.t() | no_return()
```

---

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