# ash_json_api v1.6.5 - API Reference

## Modules

- AshJsonApi
  - [AshJsonApi](AshJsonApi.md): Introspection functions for `AshJsonApi` domains.
  - [AshJsonApi.Domain](AshJsonApi.Domain.md): The entrypoint for adding JSON:API behavior to an Ash domain

  - [AshJsonApi.Resource](AshJsonApi.Resource.md): The entrypoint for adding JSON:API behavior to a resource"

  - [AshJsonApi.Router](AshJsonApi.Router.md): Use this module to create a router for your AshJsonApi.

- Utilities
  - [AshJsonApi.OpenApi](AshJsonApi.OpenApi.md): Provides functions for generating schemas and operations for OpenApi definitions.
  - [AshJsonApi.Test](AshJsonApi.Test.md): Utilities for testing AshJsonApi.

- Introspection
  - [AshJsonApi.Domain.Info](AshJsonApi.Domain.Info.md): Introspection helpers for AshJsonApi.Domain
  - [AshJsonApi.Resource.Info](AshJsonApi.Resource.Info.md): Introspection helpers for AshJsonApi.Resource
  - [AshJsonApi.Resource.Route](AshJsonApi.Resource.Route.md): Represents a route for a resource

- Errors
  - [AshJsonApi.Error](AshJsonApi.Error.md): Represents an AshJsonApi Error
  - [AshJsonApi.Error.ConflictingParams](AshJsonApi.Error.ConflictingParams.md): Returned when path parameters and query parameters have conflicting names

  - [AshJsonApi.Error.InvalidBody](AshJsonApi.Error.InvalidBody.md): Returned when the request body provided is invalid

  - [AshJsonApi.Error.InvalidField](AshJsonApi.Error.InvalidField.md): Returned when a field is requested that does not exist or is invalid

  - [AshJsonApi.Error.InvalidFilter](AshJsonApi.Error.InvalidFilter.md): Returned when a filter parameter is invalid or malformed

  - [AshJsonApi.Error.InvalidHeader](AshJsonApi.Error.InvalidHeader.md): Returned when a header provided is invalid

  - [AshJsonApi.Error.InvalidIncludes](AshJsonApi.Error.InvalidIncludes.md): Returned when the includes string provided in the query parameter `include`
is invalid.

  - [AshJsonApi.Error.InvalidPagination](AshJsonApi.Error.InvalidPagination.md): Returned when one of the nested parameters provided in the query parameter `page` is invalid

  - [AshJsonApi.Error.InvalidPathParam](AshJsonApi.Error.InvalidPathParam.md): Returned when a required path parameter is missing or invalid

  - [AshJsonApi.Error.InvalidQuery](AshJsonApi.Error.InvalidQuery.md): Returned when the query provided is invalid

  - [AshJsonApi.Error.InvalidRelationshipInput](AshJsonApi.Error.InvalidRelationshipInput.md): Returned when the request body provided is invalid

  - [AshJsonApi.Error.InvalidSort](AshJsonApi.Error.InvalidSort.md): Returned when a sort parameter is invalid or malformed

  - [AshJsonApi.Error.InvalidType](AshJsonApi.Error.InvalidType.md): Returned when a field is requested for a type that does not exist or is invalid

  - [AshJsonApi.Error.MissingSchema](AshJsonApi.Error.MissingSchema.md): Returned when a required schema is not found for validation

  - [AshJsonApi.Error.MissingTypeOnCreate](AshJsonApi.Error.MissingTypeOnCreate.md): Returned when a POST create request has a data object but no type member,
and the domain has require_type_on_create? enabled (JSON:API spec compliance).

  - [AshJsonApi.Error.NotFound](AshJsonApi.Error.NotFound.md): Returned when a record was explicitly requested, but could not be found.

  - [AshJsonApi.Error.UnacceptableMediaType](AshJsonApi.Error.UnacceptableMediaType.md): Returned when the client does not accept (via the `Accept` header) the JSON:API
media type: application/vnd.api+json

  - [AshJsonApi.Error.UnknownError](AshJsonApi.Error.UnknownError.md): Returned when an unexpected error occurs that doesn't fit other categories

  - [AshJsonApi.Error.UnsupportedMediaType](AshJsonApi.Error.UnsupportedMediaType.md): Returned when the client does not provide (via the `Content-Type` header) the
correct JSON:API media type: application/vnd.api+json

  - [AshJsonApi.ToJsonApiError](AshJsonApi.ToJsonApiError.md): A protocol for turning an Ash exception into an AshJsonApi.Error

- Internals
  - [AshJsonApi.Domain.BaseRoute](AshJsonApi.Domain.BaseRoute.md): Introspection target for base routes in `AshJsonApi.Domain`
  - [AshJsonApi.Domain.Verifiers.VerifyActions](AshJsonApi.Domain.Verifiers.VerifyActions.md): Verifies that all actions are valid for each route.
  - [AshJsonApi.Domain.Verifiers.VerifyHasType](AshJsonApi.Domain.Verifiers.VerifyHasType.md): Verifies that a resource has a type if it has any routes that need it.
  - [AshJsonApi.Domain.Verifiers.VerifyQueryParams](AshJsonApi.Domain.Verifiers.VerifyQueryParams.md): Verify query params are not reserved or shadowed by the route
  - [AshJsonApi.Domain.Verifiers.VerifyRelationships](AshJsonApi.Domain.Verifiers.VerifyRelationships.md): Verifies that any routes that reference a relationship reference a public one
  - [AshJsonApi.Igniter](AshJsonApi.Igniter.md): Codemods and utilities for working with AshJsonApi & Igniter
  - [AshJsonApi.Plug.Parser](AshJsonApi.Plug.Parser.md): Extracts ash multipart request body.
  - [AshJsonApi.Resource.Verifiers.VerifyActions](AshJsonApi.Resource.Verifiers.VerifyActions.md): Verifies that all actions are valid for each route.
  - [AshJsonApi.Resource.Verifiers.VerifyHasType](AshJsonApi.Resource.Verifiers.VerifyHasType.md): Verifies that a resource has a type if it has any routes that need it.
  - [AshJsonApi.Resource.Verifiers.VerifyIncludes](AshJsonApi.Resource.Verifiers.VerifyIncludes.md): Verifies that all includes are valid public relationships
  - [AshJsonApi.Resource.Verifiers.VerifyQueryParams](AshJsonApi.Resource.Verifiers.VerifyQueryParams.md): Verify query params are not reserved or shadowed by the route
  - [AshJsonApi.Resource.Verifiers.VerifyRelationships](AshJsonApi.Resource.Verifiers.VerifyRelationships.md): Verifies that any routes that reference a relationship reference a public one
  - [AshJsonApi.Type](AshJsonApi.Type.md): The behaviour for customizing how a datatype is rendered and written in AshJsonApi.

## Mix Tasks

- Internals
  - [mix ash_json_api.install](Mix.Tasks.AshJsonApi.Install.md): Installs AshJsonApi. Should be run with `mix igniter.install ash_json_api`
  - [mix ash_json_api.routes](Mix.Tasks.AshJsonApi.Routes.md): Prints all routes pertaining to AshJsonApi.Router for the default or a given router.

