> ## Documentation Index
> Fetch the complete documentation index at: https://docs.internal.nscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Relationship: Reservation (Platform Services)

> Reservation as a contract-tested consumer of tenants, allocations, topology groups and devices.

* **Kind:** Projection
* **Version:** 1
* **Fleet Manager owner:** Fleet Manager squad, #fleet-manager-chat (individual claimant pending)
* **Counterpart owner:** unassigned, Platform Services (repository `nscaledev/reservation`)
* **Last reviewed:** 2026-09-09

## What flows

Reservation reads [tenants](../start-here/glossary#tenant), [allocations](../start-here/glossary#allocation) (including `active_at`), topology groups and [devices](../start-here/glossary#node) to place
reservations topology-aware. It keeps its own contract in `designs/fleet-manager-contract/` in its repository:
`contract.yaml` lists the operations, query parameters, response schemas and scopes it needs, a validator checks
them against `docs/openapi.yaml`, and the Pact Broker verifies the consumer pact against Fleet Manager `main`
through the provider tests in `tests/pact/`. This is the model the register asks every projection consumer to
follow.

## What breaks if this changes

A breaking change to the tenant, allocation, topology-group or device schemas fails Reservation's
`can-i-deploy` gate before it reaches production; an additive change passes.

## Enforcement

* **Principal:** none in the hub roster.
* **Mechanism:** not recorded in this repository.
* Pact provider tests: `tests/pact/`; consumer contract in `nscaledev/reservation`.
* OpenAPI: `docs/openapi.yaml`.

## Gaps

* Reservation has no OAuth client in the hub roster; how it authenticates in production is not recorded in
  this repository.

## Change log

* 2026-09-09 v1: created; describes present behaviour.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.