{ "openapi": "3.1.0", "info": { "title": "rivet-api-public", "description": "", "contact": { "name": "Rivet Gaming, LLC", "email": "developer@rivet.dev" }, "license": { "name": "Apache-2.0", "identifier": "Apache-2.0" }, "version": "2.3.7" }, "paths": { "/actors": { "get": { "tags": [ "actors::list" ], "summary": " ## Datacenter Round Trips", "description": " **If key is some & `include_destroyed` is false**\n\n 2 round trips:\n - namespace::ops::resolve_for_name_global\n - GET /actors (multiple DCs based on actor IDs)\n\n\tThis path is optimized because we can read the actor IDs fro the key directly from Epoxy with\n\tstale consistency to determine which datacenter the actor lives in. Under most circumstances,\n\tthis means we don't need to fan out to all datacenters (like normal list does).\n\n\tThe reason `include_destroyed` has to be false is Epoxy only stores currently active actors. If\n\t`include_destroyed` is true, we show all previous iterations of actors with the same key.\n\n **Otherwise**\n\n 2 round trips:\n - namespace::ops::resolve_for_name_global\n - GET /actors (fanout)\n\n ## Optimized Alternative Routes", "operationId": "actors_list", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "key", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "actor_ids", "in": "query", "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, { "name": "actor_id", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RivetId" } } }, { "name": "include_destroyed", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsListResponse" } } } } } }, "put": { "tags": [ "actors::get_or_create" ], "summary": "## Datacenter Round Trips", "description": "**If actor exists**\n\n2 round trips:\n- namespace::ops::resolve_for_name_global\n- GET /actors/{}\n\n**If actor does not exist and is created in the current datacenter:**\n\n2 round trips:\n- namespace::ops::resolve_for_name_global\n- [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)\n\n**If actor does not exist and is created in a different datacenter:**\n\n3 round trips:\n- namespace::ops::resolve_for_name_global\n- POST /actors to remote datacenter\n- [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)\n\nactor::get will always be in the same datacenter.\n\n## Optimized Alternative Routes", "operationId": "actors_get_or_create", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsGetOrCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsGetOrCreateResponse" } } } } } }, "post": { "tags": [ "actors::create" ], "summary": "## Datacenter Round Trips", "description": "**If actor is created in the current datacenter:**\n\n2 round trips:\n- namespace::ops::resolve_for_name_global\n- [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)\n\n**If actor is created in a different datacenter:**\n\n3 round trips:\n- namespace::ops::resolve_for_name_global\n- POST /actors to remote datacenter\n- [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)\n\nactor::get will always be in the same datacenter.", "operationId": "actors_create", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsCreateResponse" } } } } } } }, "/actors/names": { "get": { "tags": [ "actors::list_names" ], "summary": "## Datacenter Round Trips", "description": "2 round trips:\n- GET /actors/names (fanout)\n- [api-peer] namespace::ops::resolve_for_name_global", "operationId": "actors_list_names", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsListNamesResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/actors/{actor_id}": { "delete": { "tags": [ "actors::delete" ], "summary": "## Datacenter Round Trips", "description": "2 round trip:\n- DELETE /actors/{}\n- [api-peer] namespace::ops::resolve_for_name_global", "operationId": "actors_delete", "parameters": [ { "name": "actor_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RivetId" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsDeleteResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/actors/{actor_id}/kv/keys/{key}": { "get": { "tags": [ "actors::kv_get" ], "operationId": "actors_kv_get", "parameters": [ { "name": "actor_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RivetId" } }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsKvGetResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/actors/{actor_id}/reschedule": { "post": { "tags": [ "actors::reschedule" ], "operationId": "actors_reschedule", "parameters": [ { "name": "actor_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RivetId" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsRescheduleRequestBody" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsRescheduleResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/actors/{actor_id}/sleep": { "post": { "tags": [ "actors::sleep" ], "operationId": "actors_sleep", "parameters": [ { "name": "actor_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RivetId" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsSleepRequestBody" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActorsSleepResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/datacenters": { "get": { "tags": [ "datacenters" ], "operationId": "datacenters_list", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DatacentersListResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/envoys": { "get": { "tags": [ "envoys" ], "operationId": "envoys_list", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "envoy_key", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnvoysListResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/health/fanout": { "get": { "tags": [ "health" ], "operationId": "health_fanout", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthFanoutResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/metadata": { "get": { "tags": [ "metadata" ], "summary": "Returns metadata about the API including runtime and version", "operationId": "metadata_get", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataGetResponse" } } } } } } }, "/namespaces": { "get": { "tags": [ "namespaces" ], "operationId": "namespaces_list", "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "namespace_ids", "in": "query", "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, { "name": "namespace_id", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RivetId" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceListResponse" } } } } }, "security": [ { "bearer_auth": [] } ] }, "post": { "tags": [ "namespaces" ], "operationId": "namespaces_create", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespacesCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespacesCreateResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runner-configs": { "get": { "tags": [ "runner_configs::list" ], "operationId": "runner_configs_list", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "variant", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/RunnerConfigVariant" } }, { "name": "runner_names", "in": "query", "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, { "name": "runner_name", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsListResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runner-configs/serverless-health-check": { "post": { "tags": [ "runner_configs::serverless_health_check" ], "operationId": "runner_configs_serverless_health_check", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsServerlessHealthCheckRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsServerlessHealthCheckResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runner-configs/{runner_name}": { "put": { "tags": [ "runner_configs::upsert" ], "operationId": "runner_configs_upsert", "parameters": [ { "name": "runner_name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsUpsertRequestBody" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsUpsertResponse" } } } } }, "security": [ { "bearer_auth": [] } ] }, "delete": { "tags": [ "runner_configs::delete" ], "operationId": "runner_configs_delete", "parameters": [ { "name": "runner_name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsDeleteResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runner-configs/{runner_name}/refresh-metadata": { "post": { "tags": [ "runner_configs::refresh_metadata" ], "operationId": "runner_configs_refresh_metadata", "parameters": [ { "name": "runner_name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsRefreshMetadataRequestBody" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnerConfigsRefreshMetadataResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runners": { "get": { "tags": [ "runners" ], "operationId": "runners_list", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "runner_ids", "in": "query", "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, { "name": "runner_id", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RivetId" } } }, { "name": "include_stopped", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnersListResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } }, "/runners/names": { "get": { "tags": [ "runners" ], "summary": "## Datacenter Round Trips", "description": "2 round trips:\n- GET /runners/names (fanout)\n- [api-peer] namespace::ops::resolve_for_name_global", "operationId": "runners_list_names", "parameters": [ { "name": "namespace", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunnersListNamesResponse" } } } } }, "security": [ { "bearer_auth": [] } ] } } }, "components": { "schemas": { "Actor": { "type": "object", "required": [ "actor_id", "name", "namespace_id", "datacenter", "runner_name_selector", "crash_policy", "create_ts" ], "properties": { "actor_id": { "$ref": "#/components/schemas/RivetId" }, "connectable_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor was last connectable. Null if actor is not running." }, "crash_policy": { "$ref": "#/components/schemas/CrashPolicy" }, "create_ts": { "type": "integer", "format": "int64", "description": "Denotes when the actor was first created." }, "datacenter": { "type": "string" }, "destroy_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor was destroyed." }, "error": { "type": [ "object", "null" ], "description": "Error details if the actor failed to start." }, "key": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "namespace_id": { "$ref": "#/components/schemas/RivetId" }, "pending_allocation_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor started waiting for an allocation." }, "reschedule_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor will try to allocate again. If this is set, the actor will not attempt to\nallocate until the given timestamp." }, "runner_name_selector": { "type": "string" }, "sleep_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor entered a sleeping state." }, "start_ts": { "type": [ "integer", "null" ], "format": "int64", "description": "Denotes when the actor was first made connectable. Null if never." } } }, "ActorName": { "type": "object", "required": [ "metadata" ], "properties": { "metadata": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } } } }, "ActorsCreateRequest": { "type": "object", "required": [ "name", "runner_name_selector", "crash_policy" ], "properties": { "crash_policy": { "$ref": "#/components/schemas/CrashPolicy" }, "datacenter": { "type": [ "string", "null" ] }, "input": { "type": [ "string", "null" ], "description": "Arbitrary base64 encoded binary data." }, "key": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "runner_name_selector": { "type": "string" } }, "additionalProperties": false }, "ActorsCreateResponse": { "type": "object", "required": [ "actor" ], "properties": { "actor": { "$ref": "#/components/schemas/Actor" } }, "additionalProperties": false }, "ActorsDeleteResponse": { "type": "object" }, "ActorsGetOrCreateRequest": { "type": "object", "required": [ "name", "key", "runner_name_selector", "crash_policy" ], "properties": { "crash_policy": { "$ref": "#/components/schemas/CrashPolicy" }, "datacenter": { "type": [ "string", "null" ] }, "input": { "type": [ "string", "null" ] }, "key": { "type": "string" }, "name": { "type": "string" }, "runner_name_selector": { "type": "string" } }, "additionalProperties": false }, "ActorsGetOrCreateResponse": { "type": "object", "required": [ "actor", "created" ], "properties": { "actor": { "$ref": "#/components/schemas/Actor" }, "created": { "type": "boolean" } }, "additionalProperties": false }, "ActorsKvGetResponse": { "type": "object", "required": [ "value", "update_ts" ], "properties": { "update_ts": { "type": "integer", "format": "int64" }, "value": { "type": "string" } }, "additionalProperties": false }, "ActorsListNamesResponse": { "type": "object", "required": [ "names", "pagination" ], "properties": { "names": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ActorName" }, "propertyNames": { "type": "string" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "ActorsListResponse": { "type": "object", "required": [ "actors", "pagination" ], "properties": { "actors": { "type": "array", "items": { "$ref": "#/components/schemas/Actor" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "ActorsRescheduleRequestBody": { "type": "object", "additionalProperties": false }, "ActorsRescheduleResponse": { "type": "object", "additionalProperties": false }, "ActorsSleepRequestBody": { "type": "object", "additionalProperties": false }, "ActorsSleepResponse": { "type": "object", "additionalProperties": false }, "CrashPolicy": { "type": "string", "enum": [ "restart", "sleep", "destroy" ] }, "Datacenter": { "type": "object", "required": [ "label", "name", "url" ], "properties": { "label": { "type": "integer", "format": "int32", "minimum": 0 }, "name": { "type": "string" }, "url": { "type": "string" } }, "additionalProperties": false }, "DatacenterHealth": { "type": "object", "required": [ "datacenter_label", "datacenter_name", "status" ], "properties": { "datacenter_label": { "type": "integer", "format": "int32", "minimum": 0 }, "datacenter_name": { "type": "string" }, "error": { "type": [ "string", "null" ] }, "response": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HealthResponse" } ] }, "rtt_ms": { "type": [ "number", "null" ], "format": "double" }, "status": { "$ref": "#/components/schemas/HealthStatus" } } }, "DatacentersListResponse": { "type": "object", "required": [ "datacenters", "pagination" ], "properties": { "datacenters": { "type": "array", "items": { "$ref": "#/components/schemas/Datacenter" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "Envoy": { "type": "object", "required": [ "envoy_key", "namespace_id", "datacenter", "pool_name", "version", "slots", "create_ts", "last_ping_ts", "last_rtt" ], "properties": { "create_ts": { "type": "integer", "format": "int64" }, "datacenter": { "type": "string" }, "envoy_key": { "type": "string" }, "last_connected_ts": { "type": [ "integer", "null" ], "format": "int64" }, "last_ping_ts": { "type": "integer", "format": "int64" }, "last_rtt": { "type": "integer", "format": "int32", "minimum": 0 }, "metadata": { "type": [ "object", "null" ], "additionalProperties": {}, "propertyNames": { "type": "string" } }, "namespace_id": { "$ref": "#/components/schemas/RivetId" }, "pool_name": { "type": "string" }, "slots": { "type": "integer", "format": "int64", "minimum": 0 }, "stop_ts": { "type": [ "integer", "null" ], "format": "int64" }, "version": { "type": "integer", "format": "int32", "minimum": 0 } }, "additionalProperties": false }, "EnvoysListResponse": { "type": "object", "required": [ "envoys", "pagination" ], "properties": { "envoys": { "type": "array", "items": { "$ref": "#/components/schemas/Envoy" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "HealthFanoutResponse": { "type": "object", "required": [ "datacenters" ], "properties": { "datacenters": { "type": "array", "items": { "$ref": "#/components/schemas/DatacenterHealth" } } } }, "HealthResponse": { "type": "object", "required": [ "runtime", "status", "version" ], "properties": { "runtime": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "string" } } }, "HealthStatus": { "type": "string", "enum": [ "ok", "error" ] }, "MetadataGetResponse": { "type": "object", "required": [ "runtime", "version", "git_sha", "build_timestamp", "rustc_version", "rustc_host", "cargo_target", "cargo_profile", "epoxy_protocol_version", "envoy_protocol_version" ], "properties": { "build_timestamp": { "type": "string" }, "cargo_profile": { "type": "string" }, "cargo_target": { "type": "string" }, "envoy_protocol_version": { "type": "integer", "format": "int32", "minimum": 0 }, "epoxy_protocol_version": { "type": "integer", "format": "int32", "minimum": 0 }, "git_sha": { "type": "string" }, "runtime": { "type": "string" }, "rustc_host": { "type": "string" }, "rustc_version": { "type": "string" }, "version": { "type": "string" } } }, "Namespace": { "type": "object", "required": [ "namespace_id", "name", "display_name", "create_ts" ], "properties": { "create_ts": { "type": "integer", "format": "int64" }, "display_name": { "type": "string" }, "name": { "type": "string" }, "namespace_id": { "$ref": "#/components/schemas/RivetId" } } }, "NamespaceListResponse": { "type": "object", "required": [ "namespaces", "pagination" ], "properties": { "namespaces": { "type": "array", "items": { "$ref": "#/components/schemas/Namespace" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "NamespacesCreateRequest": { "type": "object", "required": [ "name", "display_name" ], "properties": { "display_name": { "type": "string" }, "name": { "type": "string" } }, "additionalProperties": false }, "NamespacesCreateResponse": { "type": "object", "required": [ "namespace" ], "properties": { "namespace": { "$ref": "#/components/schemas/Namespace" } }, "additionalProperties": false }, "Pagination": { "type": "object", "properties": { "cursor": { "type": [ "string", "null" ] } }, "additionalProperties": false }, "RivetId": { "type": "string" }, "Runner": { "type": "object", "required": [ "runner_id", "namespace_id", "datacenter", "name", "key", "version", "total_slots", "remaining_slots", "create_ts", "last_ping_ts", "last_rtt" ], "properties": { "create_ts": { "type": "integer", "format": "int64" }, "datacenter": { "type": "string" }, "drain_ts": { "type": [ "integer", "null" ], "format": "int64" }, "key": { "type": "string" }, "last_connected_ts": { "type": [ "integer", "null" ], "format": "int64" }, "last_ping_ts": { "type": "integer", "format": "int64" }, "last_rtt": { "type": "integer", "format": "int32", "minimum": 0 }, "metadata": { "type": [ "object", "null" ], "additionalProperties": {}, "propertyNames": { "type": "string" } }, "name": { "type": "string" }, "namespace_id": { "$ref": "#/components/schemas/RivetId" }, "remaining_slots": { "type": "integer", "format": "int32", "minimum": 0 }, "runner_id": { "$ref": "#/components/schemas/RivetId" }, "stop_ts": { "type": [ "integer", "null" ], "format": "int64" }, "total_slots": { "type": "integer", "format": "int32", "minimum": 0 }, "version": { "type": "integer", "format": "int32", "minimum": 0 } }, "additionalProperties": false }, "RunnerConfig": { "allOf": [ { "$ref": "#/components/schemas/RunnerConfigKind" }, { "type": "object", "properties": { "drain_on_version_upgrade": { "type": [ "boolean", "null" ], "description": "Deprecated." }, "metadata": {} } } ] }, "RunnerConfigKind": { "oneOf": [ { "type": "object", "required": [ "normal" ], "properties": { "normal": { "type": "object", "properties": { "actor_eviction_delay": { "type": [ "integer", "null" ], "format": "int32", "description": "Seconds.", "minimum": 0 }, "actor_eviction_period": { "type": [ "integer", "null" ], "format": "int32", "description": "Seconds.", "minimum": 0 }, "actor_eviction_rate": { "type": [ "number", "null" ], "format": "float", "description": "Actors per second." }, "drain_on_version_upgrade": { "type": [ "boolean", "null" ] } } } } }, { "type": "object", "required": [ "serverless" ], "properties": { "serverless": { "type": "object", "required": [ "url", "request_lifespan" ], "properties": { "actor_eviction_delay": { "type": [ "integer", "null" ], "format": "int32", "description": "Seconds.", "minimum": 0 }, "actor_eviction_period": { "type": [ "integer", "null" ], "format": "int32", "description": "Seconds.", "minimum": 0 }, "actor_eviction_rate": { "type": [ "number", "null" ], "format": "float", "description": "Actors per second." }, "drain_grace_period": { "type": [ "integer", "null" ], "format": "int32", "description": "Seconds.", "minimum": 0 }, "drain_on_version_upgrade": { "type": [ "boolean", "null" ] }, "headers": { "type": [ "object", "null" ], "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "max_concurrent_actors": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "max_runners": { "type": [ "integer", "null" ], "format": "int32", "description": "Deprecated.", "minimum": 0 }, "metadata_poll_interval": { "type": [ "integer", "null" ], "format": "int64", "description": "Milliseconds between metadata polling. If not set, uses the global default.", "minimum": 0 }, "min_runners": { "type": [ "integer", "null" ], "format": "int32", "description": "Deprecated.", "minimum": 0 }, "request_lifespan": { "type": "integer", "format": "int32", "description": "Seconds.", "minimum": 0 }, "runners_margin": { "type": [ "integer", "null" ], "format": "int32", "description": "Deprecated.", "minimum": 0 }, "slots_per_runner": { "type": [ "integer", "null" ], "format": "int32", "description": "Deprecated.", "minimum": 0 }, "url": { "type": "string" } } } } } ] }, "RunnerConfigResponse": { "allOf": [ { "$ref": "#/components/schemas/RunnerConfig" }, { "type": "object", "properties": { "protocol_version": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "runner_pool_error": { "type": [ "object", "null" ] } } } ] }, "RunnerConfigVariant": { "type": "string", "enum": [ "serverless", "normal" ] }, "RunnerConfigsDeleteResponse": { "type": "object" }, "RunnerConfigsListResponse": { "type": "object", "required": [ "runner_configs", "pagination" ], "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, "runner_configs": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/RunnerConfigsListResponseRunnerConfigsValue" }, "propertyNames": { "type": "string" } } }, "additionalProperties": false }, "RunnerConfigsListResponseRunnerConfigsValue": { "type": "object", "required": [ "datacenters" ], "properties": { "datacenters": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/RunnerConfigResponse" }, "propertyNames": { "type": "string" } } } }, "RunnerConfigsRefreshMetadataRequestBody": { "type": "object", "additionalProperties": false }, "RunnerConfigsRefreshMetadataResponse": { "type": "object", "additionalProperties": false }, "RunnerConfigsServerlessHealthCheckRequest": { "type": "object", "required": [ "url" ], "properties": { "headers": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "url": { "type": "string" } }, "additionalProperties": false }, "RunnerConfigsServerlessHealthCheckResponse": { "oneOf": [ { "type": "object", "required": [ "success" ], "properties": { "success": { "type": "object", "required": [ "version" ], "properties": { "version": { "type": "string" } } } } }, { "type": "object", "required": [ "failure" ], "properties": { "failure": { "type": "object", "required": [ "error" ], "properties": { "error": { "$ref": "#/components/schemas/RunnerConfigsServerlessMetadataError" } } } } } ] }, "RunnerConfigsServerlessMetadataError": { "type": "object", "description": "Wire-format envelope for serverless metadata errors.\n\nSurfaced to API clients with a stable `{message, details, metadata}` shape\nregardless of which internal `ServerlessMetadataError` variant produced it.\n`metadata.kind` discriminates the variant; per-variant fields live alongside\n`kind`.", "required": [ "message" ], "properties": { "details": { "type": [ "string", "null" ] }, "message": { "type": "string" }, "metadata": {} } }, "RunnerConfigsUpsertRequestBody": { "type": "object", "required": [ "datacenters" ], "properties": { "datacenters": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/RunnerConfig" }, "propertyNames": { "type": "string" } } }, "additionalProperties": false }, "RunnerConfigsUpsertResponse": { "type": "object", "required": [ "endpoint_config_changed" ], "properties": { "endpoint_config_changed": { "type": "boolean" } } }, "RunnersListNamesResponse": { "type": "object", "required": [ "names", "pagination" ], "properties": { "names": { "type": "array", "items": { "type": "string" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "additionalProperties": false }, "RunnersListResponse": { "type": "object", "required": [ "runners", "pagination" ], "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, "runners": { "type": "array", "items": { "$ref": "#/components/schemas/Runner" } } }, "additionalProperties": false } }, "securitySchemes": { "bearer_auth": { "type": "http", "scheme": "bearer" } } }, "security": [ { "bearer_auth": [] } ] }