# EnvoyDataPlaneApi

Protobuf definitions for the Envoy data plane API.

Can be used to parse/generate Envoy configuration files or to implement
control plane servers using gRPC.

The definitions are generated by pulling the official [data-plane-api](
repository, and using [`buf`]( to handle dependencies run the code generation.

The Elixir code is generated using the [protobuf](
library, and it also depends on the [grpc]( and
the [google_protos]( libraries.

## Example

Here is a simple example of how to use the generated code to parse the
`/config_dump` endpoint of Envoy's admin API:

Mix.install([:req, :jason, :envoy_data_plane_api])

config_dump =
  |> Req.get!()
  |> then(& &1.body)
  |> Protobuf.JSON.decode!(Envoy.Admin.V3.ConfigDump)

## Installation

The package can be installed by adding `envoy_data_plane_api` to your list
of dependencies in `mix.exs`:

def deps do
    {:envoy_data_plane_api, "~> 0.1.0"}

The docs can be found at <>.