Skip to content

Add Action Gateway endpoint and endpoint version APIs - #1212

Merged
bbatha merged 1 commit into
mainfrom
action-gateway-endpoints
Nov 5, 2026
Merged

bbatha merged 1 commit into
mainfrom
action-gateway-endpoints

Conversation

@bbatha

@bbatha bbatha commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the Action Gateway endpoint and endpoint version APIs to godo, matching digitalocean/openapi@5394aea (openapi#1292) — the same spec change that regenerated pydo in digitalocean/pydo#801.

An endpoint is a named lineage of immutable versions with a live MCP URL that follows the head and a pinned URL per version. The legacy session routes remain, but sessions now also expose their parent endpoint linkage.

Scope

+POST   /v2/action-gateway/endpoints                            Endpoints.Create
+GET    /v2/action-gateway/endpoints                            Endpoints.List        (keyset: page_size/page_token, name & actor_id filters)
+GET    /v2/action-gateway/endpoints/search                     Endpoints.Search      (query + actor_id, keyset)
+GET    /v2/action-gateway/endpoints/{endpoint_id}              Endpoints.Get
+PATCH  /v2/action-gateway/endpoints/{endpoint_id}              Endpoints.Update      (name and/or insights)
+DELETE /v2/action-gateway/endpoints/{endpoint_id}              Endpoints.Delete
+POST   /v2/action-gateway/endpoints/{endpoint_id}/versions     Endpoints.CreateVersion    → publish response (mcp_url + version_mcp_url)
+GET    /v2/action-gateway/endpoints/{endpoint_id}/versions     Endpoints.ListVersions
+POST   /v2/action-gateway/endpoints/{endpoint_id}/versions:promote  Endpoints.PromoteVersion
+GET    /v2/action-gateway/endpoint-versions/{version_id}       Endpoints.GetVersion
+DELETE /v2/action-gateway/endpoint-versions/{version_id}       Endpoints.DeleteVersion

Details

  • policy, config, and network keep the session API's camelCase shapes (defaultAction, vpcUuid) and reuse ActionGatewaySessionPolicy / ActionGatewaySessionInsights, as the spec does.
  • ActionGatewayEndpointVersionSpec.Tools preserves omission vs. an explicitly empty slice (same MarshalJSON pattern as sessions).
  • Version-level insights is deprecated/ignored server-side; consent lives on the endpoint (insights on create/patch/responses).
  • ActionGatewaySessionRecord gains endpoint_id, endpoint_version_id, version_number (absent for legacy sessions).
  • Empty endpointID/versionID arguments return ArgError before any request, per godo conventions.

Testing

  • Table-driven public-operations test updated (43 → 54 operations).
  • Wire-shape tests for endpoint (head_version: null), endpoint version, network region, insights, and tools-selection preservation.
  • go test ., go vet, gofmt all clean.

Mirrors digitalocean/openapi#1292 in godo:

- New ActionGatewayEndpointsService with Create, List, Search, Get,
  Update, Delete for /v2/action-gateway/endpoints, plus ListVersions,
  CreateVersion, PromoteVersion under
  /endpoints/{endpoint_id}/versions, and GetVersion/DeleteVersion
  under /v2/action-gateway/endpoint-versions/{version_id}.
- Policy, insights, and tool types shared with the session API, per
  the spec; version tools selection preserves omission vs an
  explicitly empty slice.
- Session records gain endpoint_id, endpoint_version_id, and
  version_number (absent for legacy sessions).
@andrewsomething
andrewsomething removed their request for review November 5, 2026 20:13
@bbatha
bbatha merged commit 226a0fa into main Nov 5, 2026
8 checks passed
@bbatha
bbatha deleted the action-gateway-endpoints branch November 5, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

⌂ 换网址