# TypeDB v0.2.2 - Table of Contents

> A driver for TypeDB 3.12+ in Elixir, built on the TypeDB HTTP API. Databases, users, transactions, TypeQL queries and typed concept answers.

## Pages

- [TypeDB for Elixir](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)
- [LICENSE](license.md)

- Guides
  - [Transactions](transactions.md)
  - [Errors and retries](errors-and-retries.md)
  - [Telemetry and logging](observability.md)
  - [Testing an application against TypeDB](testing.md)

- Notebooks
  - [TypeDB for Elixir](getting_started.md)

## Modules

- Connection
  - [TypeDB](TypeDB.md): A driver for TypeDB 3.12 and newer, built on the TypeDB HTTP API.
  - [TypeDB.Config](TypeDB.Config.md): Validated connection configuration.
  - [TypeDB.Connection](TypeDB.Connection.md): A supervised connection to a TypeDB server.

- Querying
  - [TypeDB.Given](TypeDB.Given.md): Encodes input rows for TypeQL's `given` stage (TypeDB 3.12+).
  - [TypeDB.Options](TypeDB.Options.md): Transaction and query options, and their translation to the HTTP wire format.
  - [TypeDB.Options.Query](TypeDB.Options.Query.md): Query options. See `TypeDB.Options`.
  - [TypeDB.Options.Transaction](TypeDB.Options.Transaction.md): Transaction options. See `TypeDB.Options`.
  - [TypeDB.Transaction](TypeDB.Transaction.md): Explicit transactions.

- Answers
  - [TypeDB.Answer](TypeDB.Answer.md): The result of a TypeQL query.
  - [TypeDB.Answer.ConceptDocuments](TypeDB.Answer.ConceptDocuments.md): JSON documents produced by a `fetch` pipeline. Implements `Enumerable` over
`documents`.

  - [TypeDB.Answer.ConceptRows](TypeDB.Answer.ConceptRows.md): Rows of variable bindings. Implements `Enumerable` over `rows`.

  - [TypeDB.Answer.Ok](TypeDB.Answer.Ok.md): An answer with no results, e.g. from `define` or `undefine`.
  - [TypeDB.ConceptRow](TypeDB.ConceptRow.md): One row of a `conceptRows` answer: a map from variable name to concept.

- Concepts
  - [TypeDB.Concept](TypeDB.Concept.md): The concepts TypeDB returns inside `conceptRows` answers.
  - [TypeDB.Concept.Attribute](TypeDB.Concept.Attribute.md): An attribute instance: an owned value with an identity.
  - [TypeDB.Concept.AttributeType](TypeDB.Concept.AttributeType.md): An attribute type. `value_type` is `nil` for abstract attribute types.
  - [TypeDB.Concept.Entity](TypeDB.Concept.Entity.md): An entity instance.
  - [TypeDB.Concept.EntityType](TypeDB.Concept.EntityType.md): An entity type.
  - [TypeDB.Concept.Relation](TypeDB.Concept.Relation.md): A relation instance.
  - [TypeDB.Concept.RelationType](TypeDB.Concept.RelationType.md): A relation type.
  - [TypeDB.Concept.RoleType](TypeDB.Concept.RoleType.md): A role type. Labels are scoped, e.g. `"employment:employee"`.
  - [TypeDB.Concept.Value](TypeDB.Concept.Value.md): A computed value with no identity, e.g. the result of an expression.
  - [TypeDB.DateTimeTZ](TypeDB.DateTimeTZ.md): A TypeDB `datetime-tz` value.
  - [TypeDB.Duration](TypeDB.Duration.md): A TypeDB `duration` value.

- Errors
  - [TypeDB.Error](TypeDB.Error.md): The single exception type raised (or returned) by every `TypeDB` operation.

- Observability
  - [TypeDB.Telemetry](TypeDB.Telemetry.md): Telemetry events emitted by the driver.

- Administration
  - [TypeDB.Database](TypeDB.Database.md): Database administration.
  - [TypeDB.Server](TypeDB.Server.md): Server introspection: health, version and cluster membership.
  - [TypeDB.User](TypeDB.User.md): User administration.

- Extending
  - [TypeDB.HTTP](TypeDB.HTTP.md): The HTTP transport behaviour used by `TypeDB`.
  - [TypeDB.HTTP.Finch](TypeDB.HTTP.Finch.md): Default `TypeDB.HTTP` adapter, backed by [Finch](https://hex.pm/packages/finch).
  - [TypeDB.HTTP.Httpc](TypeDB.HTTP.Httpc.md): `TypeDB.HTTP` adapter built on OTP's `:httpc`, for deployments that must run on
OTP alone.
  - [TypeDB.HTTP.Req](TypeDB.HTTP.Req.md): `TypeDB.HTTP` adapter backed by [Req](https://hex.pm/packages/req) and Finch.
  - [TypeDB.JSON](TypeDB.JSON.md): JSON codec indirection.
  - [TypeDB.JSON.Jason](TypeDB.JSON.Jason.md): `TypeDB.JSON` codec backed by [Jason](https://hex.pm/packages/jason).
  - [TypeDB.JSON.Native](TypeDB.JSON.Native.md): `TypeDB.JSON` codec backed by Elixir's built-in `JSON` module (Elixir >= 1.18).

## Mix Tasks

- Mix tasks
  - [mix typedb.check](Mix.Tasks.Typedb.Check.md): Statically validates TypeQL files, without a running TypeDB server.

