# GcpCompute v0.2.0 - Table of Contents

> Spawn and manage Google Compute Engine instances over the REST API, with pluggable auth, telemetry, and an ergonomic instance builder.

## Pages

- [GcpCompute](readme.md)
- [Changelog](changelog.md)

- Guides
  - [Getting Started](getting-started.md)
  - [Configuring Machines](configuring-machines.md)
  - [Testing](testing.md)

## Modules

- Core API
  - [GcpCompute](GcpCompute.md): Spawn and manage Google Compute Engine instances over the REST API.
  - [GcpCompute.Instances](GcpCompute.Instances.md): CRUD + lifecycle for Compute Engine instances.
  - [GcpCompute.Operations](GcpCompute.Operations.md): Track Compute Engine [operations](https://cloud.google.com/compute/docs/reference/rest/v1/zoneOperations)
to completion.

- Configuration
  - [GcpCompute.Config](GcpCompute.Config.md): Validated configuration — and the client handle you pass to every API call.

- Auth
  - [GcpCompute.TokenProvider](GcpCompute.TokenProvider.md): Behaviour for minting the OAuth2 access tokens used to authenticate Compute
API requests.
  - [GcpCompute.TokenProvider.Goth](GcpCompute.TokenProvider.Goth.md): `GcpCompute.TokenProvider` backed by [Goth](https://hexdocs.pm/goth).
  - [GcpCompute.TokenProvider.Static](GcpCompute.TokenProvider.Static.md): `GcpCompute.TokenProvider` that returns a fixed token.

- Data
  - [GcpCompute.Disk](GcpCompute.Disk.md): Parsed `disks` entry of an instance.
  - [GcpCompute.Error](GcpCompute.Error.md): Normalized error returned by every `GcpCompute` function.
  - [GcpCompute.Instance](GcpCompute.Instance.md): A Compute Engine instance — both the parsed result of a `get`/`list`, and a
builder (`spec/1`) for the JSON body that `insert` expects.
  - [GcpCompute.NetworkInterface](GcpCompute.NetworkInterface.md): Parsed `networkInterfaces` entry — internal + external IPs flattened out.
  - [GcpCompute.Operation](GcpCompute.Operation.md): A Compute Engine [Operation](https://cloud.google.com/compute/docs/reference/rest/v1/zoneOperations).
  - [GcpCompute.Scheduling](GcpCompute.Scheduling.md): Parsed `scheduling` block of an instance.
  - [GcpCompute.Util](GcpCompute.Util.md): Helpers for parsing Compute API output (self-link URLs, timestamps).

- Telemetry
  - [GcpCompute.Telemetry](GcpCompute.Telemetry.md): Telemetry events emitted by the library.

