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

# Endpoint reference

> Browse every ECS API route

All paths are relative to:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
https://api.cloudservices.ecowestern.net/v1
```

## Flow

| Method | Path                             | Permission    |
| ------ | -------------------------------- | ------------- |
| POST   | `/flow/functions`                | `flow:write`  |
| GET    | `/flow/functions`                | `flow:read`   |
| GET    | `/flow/functions/:name`          | `flow:read`   |
| PATCH  | `/flow/functions/:name`          | `flow:write`  |
| DELETE | `/flow/functions/:name`          | `flow:delete` |
| GET    | `/flow/functions/:name/logs`     | `flow:read`   |
| GET    | `/flow/functions/:name/status`   | `flow:read`   |
| POST   | `/flow/functions/:name/rollback` | `flow:write`  |
| ALL    | `/flow/functions/:name/*`        | `flow:invoke` |

## Canopy

| Method | Path                         | Permission      |
| ------ | ---------------------------- | --------------- |
| POST   | `/canopy/sites`              | `canopy:write`  |
| GET    | `/canopy/sites`              | `canopy:read`   |
| GET    | `/canopy/sites/:name`        | `canopy:read`   |
| PATCH  | `/canopy/sites/:name`        | `canopy:write`  |
| DELETE | `/canopy/sites/:name`        | `canopy:delete` |
| GET    | `/canopy/sites/:name/logs`   | `canopy:read`   |
| GET    | `/canopy/sites/:name/status` | `canopy:read`   |

## ClearLake

| Method | Path                                              | Permission         |
| ------ | ------------------------------------------------- | ------------------ |
| POST   | `/clearlake/buckets`                              | `clearlake:write`  |
| GET    | `/clearlake/buckets`                              | `clearlake:read`   |
| GET    | `/clearlake/buckets/:name`                        | `clearlake:read`   |
| DELETE | `/clearlake/buckets/:name`                        | `clearlake:delete` |
| POST   | `/clearlake/buckets/:name/objects/upload-url`     | `clearlake:write`  |
| GET    | `/clearlake/buckets/:name/objects`                | `clearlake:read`   |
| GET    | `/clearlake/buckets/:name/objects/*`              | `clearlake:read`   |
| GET    | `/clearlake/buckets/:name/objects/*/download-url` | `clearlake:read`   |
| DELETE | `/clearlake/buckets/:name/objects/*`              | `clearlake:delete` |

## Waymark

| Method | Path                         | Permission       |
| ------ | ---------------------------- | ---------------- |
| POST   | `/waymark/domains`           | `waymark:write`  |
| GET    | `/waymark/domains`           | `waymark:read`   |
| GET    | `/waymark/domains/:hostname` | `waymark:read`   |
| DELETE | `/waymark/domains/:hostname` | `waymark:delete` |

## Service routes

These routes are outside the `/v1` prefix:

| Method | Path            | Purpose                   |
| ------ | --------------- | ------------------------- |
| GET    | `/`             | Service metadata          |
| GET    | `/health`       | Health check              |
| GET    | `/openapi.yaml` | OpenAPI document          |
| GET    | `/docs`         | Interactive API reference |
