# `ExUtcp.OpenApiConverter.Parser`
[🔗](https://github.com/universal-tool-calling-protocol/elixir-utcp/blob/main/lib/ex_utcp/openapi_converter/parser.ex#L1)

OpenAPI specification parser for both 2.0 and 3.0 versions.

# `parse`

```elixir
@spec parse(map()) ::
  {:ok, ExUtcp.OpenApiConverter.Types.ParsedSpec.t()} | {:error, String.t()}
```

Parses an OpenAPI specification into a normalized structure.

## Parameters

- `spec`: OpenAPI specification as a map

## Returns

`{:ok, parsed_spec}` on success, `{:error, reason}` on failure.

# `validate`

```elixir
@spec validate(map()) :: {:ok, ExUtcp.OpenApiConverter.Types.ValidationResult.t()}
```

Validates an OpenAPI specification.

## Parameters

- `spec`: OpenAPI specification as a map

## Returns

`{:ok, validation_result}` on success, `{:error, reason}` on failure.

---

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