Observe API
Observability operations: log-forwarding coverage and gaps, noise suppression, synthetic health dashboards, and the monitoring review queue.
28 routes
Response metadata: x-api-version, x-request-id, and traceresponse apply to normal routed responses and are omitted from the per-operation header tables below.
GET/api/observe/alert-routing-contract
request access
Observe alert routing.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/alert-routing-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
dimensions | array<JSON value> | Required | Value of dimensions returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
escalationStages | array<JSON value> | Required | Value of escalationStages returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/alert-routing-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"dimensions": [],
"requiredGuards": [],
"escalationStages": [],
"blockedReasons": []
}
GET/api/observe/log-forwarder-onboarding-contract
request access
Observe log forwarder.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/log-forwarder-onboarding-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/log-forwarder-onboarding-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"signals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}
GET/api/observe/logs-contract
request access
Logs contract.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/logs-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
endpoints | JSON value | Required | Value of endpoints returned in the response body. |
sourceTypes | array<JSON value> | Required | Value of sourceTypes returned in the response body. |
statuses | array<JSON value> | Required | Value of statuses returned in the response body. |
hosts | JSON value | Required | Value of hosts returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/logs-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"endpoints": null,
"sourceTypes": [],
"statuses": [],
"hosts": null,
"workflows": [],
"signals": [],
"requiredGuards": [],
"blockedReasons": []
}
GET/api/observe/logs/coverage
audit access
Return the coverage report for a site.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/logs/coverage
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Required | Required site code whose log-forwarding report should be returned. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/logs/coverage?site=<site>'
POST/api/observe/logs/disable/{hostname}
execute access
Disable log forwarding for all sources on a hostname by transitioning each to NotConfigured.
Requires a database. Disables every still-active source for the hostname in one atomic, advisory-locked step (repos::log_forwarders::disable_all_for_hostname) so it cannot race a concurrent onboard or be left partially applied. The response lists the sources that were actually transitioned.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/logs/disable/{hostname}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
hostname | string | Required | Value of the hostname request-path segment. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/logs/disable/<hostname>'
GET/api/observe/logs/gaps
audit access
Return the gap report for a site.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/logs/gaps
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Required | Required site code whose log-forwarding report should be returned. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/logs/gaps?site=<site>'
POST/api/observe/logs/onboard
execute access
Insert one LogSource row per requested source type and return the list of persisted records.
The handler fans out: one row per (hostname, source_type) pair so each source has an independent status lifecycle.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/logs/onboard
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
Content-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
JSON structure: LogsOnboardRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
hostname | string | Required | Value of hostname in the JSON request body. |
sourceTypes | array<string> | Optional | Value of sourceTypes in the JSON request body. |
site | string | Required | Site code targeted by the request. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '{"hostname":"<string>","site":"<string>"}' \
'https://<your-host>/api/observe/logs/onboard'
GET/api/observe/logs/retention
audit access
Return the retention status for a site.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/logs/retention
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Required | Required site code whose log-forwarding report should be returned. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/logs/retention?site=<site>'
POST/api/observe/logs/validate/{hostname}
execute access
Validate the forwarding config for a hostname.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/logs/validate/{hostname}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
hostname | string | Required | Value of the hostname request-path segment. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/logs/validate/<hostname>'
POST/api/observe/logs/verify/{hostname}
execute access
Verify that a hostname is actively forwarding logs.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/logs/verify/{hostname}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
hostname | string | Required | Value of the hostname request-path segment. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/logs/verify/<hostname>'
GET/api/observe/logs/volume
audit access
Return the volume report for a site.
Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/logs/volume
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Required | Required site code whose log-forwarding report should be returned. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/logs/volume?site=<site>'
GET/api/observe/monitoring-coverage-gap-contract
request access
Observe monitoring coverage gap.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/monitoring-coverage-gap-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
gapScopes | array<JSON value> | Required | Value of gapScopes returned in the response body. |
gapSignals | array<JSON value> | Required | Value of gapSignals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/monitoring-coverage-gap-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"gapScopes": [],
"gapSignals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}
GET/api/observe/monitoring-review-queue
request access
The LIVE monitoring review queue (#29).
The monitoring_review_queue table (migration 031) was seeded but never read by the API — only the static contract endpoint existed. This turns it into a real read surface, mirroring how shift_queue is exposed. Request-tier read, site-scoped (#2): a scoped principal sees only its own site's items; an environment-scoped principal sees none (this queue is site-only). Ordered by SLA deadline (most urgent first). Empty + durable:false when no DB is configured.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/monitoring-review-queue
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of results requested. |
offset | integer | Optional | Number of results to skip before returning the page. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
items | JSON value | Required | Resources returned by this operation. |
durable | boolean | Required | Value of durable returned in the response body. |
total | JSON value | Required | Total number of matching items before the returned page is applied. |
limit | JSON value | Required | Page-size limit applied to this response. |
offset | JSON value | Required | Number of matching items skipped before this response page. |
Returns a paginated JSON object with total/limit/offset keys.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/monitoring-review-queue'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"items": null,
"durable": false,
"total": null,
"limit": null,
"offset": null
}
GET/api/observe/monitoring-review-queue-contract
request access
Observe monitoring review queue.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/monitoring-review-queue-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/monitoring-review-queue-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"signals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}
GET/api/observe/noise-flapping-remediation-contract
request access
Observe noise flapping.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/noise-flapping-remediation-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/noise-flapping-remediation-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"signals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}
GET/api/observe/oncall/contacts
audit access
List contacts, optionally filtered by site and/or escalation tier, in escalation order.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/oncall/contacts
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Optional | Site identifier used to scope or filter the operation. |
tier | integer | Optional | Value supplied for the tier query parameter. |
limit | integer | Optional | Maximum number of results requested. |
offset | integer | Optional | Number of results to skip before returning the page. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
contacts | JSON value | Required | Value of contacts returned in the response body. |
durable | boolean | Optional | Value of durable returned in the response body. |
total | JSON value | Required | Total number of matching items before the returned page is applied. |
limit | JSON value | Required | Page-size limit applied to this response. |
offset | JSON value | Required | Number of matching items skipped before this response page. |
source | string | Optional | Origin or authority of the returned data. |
count | JSON value | Optional | Number of items represented in this response. |
Returns a paginated JSON object with total/limit/offset keys.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/oncall/contacts'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"contacts": null,
"durable": false,
"total": null,
"limit": null,
"offset": null,
"source": "<string>",
"count": null
}
POST/api/observe/oncall/contacts
execute access
Register an on-call contact.
Execute-tier.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/oncall/contacts
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
Content-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
JSON structure: OnCallContactCreateRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
name | string | Required | Client-supplied name for the resource or operation. |
role | string | Required | Value of role in the JSON request body. |
site | string | Optional | Site code targeted by the request. |
escalation_tier | integer | Optional | Value of escalation_tier in the JSON request body. |
email | string | Optional | Value of email in the JSON request body. |
phone | string | Optional | Value of phone in the JSON request body. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
id | JSON value | Required | Identifier of the returned resource. |
created | boolean | Required | Value of created returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '{"name":"<string>","role":"<string>"}' \
'https://<your-host>/api/observe/oncall/contacts'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"id": null,
"created": false
}
DELETE/api/observe/oncall/contacts/{id}
execute access
Remove a contact.
404 when unknown.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
DELETE https://<your-host>/api/observe/oncall/contacts/{id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
deleted | boolean | Required | Value of deleted returned in the response body. |
id | JSON value | Required | Identifier of the returned resource. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request DELETE \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/oncall/contacts/<id>'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"deleted": false,
"id": null
}
GET/api/observe/oncall/contacts/{id}
audit access
Fetch one contact.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/oncall/contacts/{id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
contact | JSON value | Required | Value of contact returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/oncall/contacts/<id>'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"contact": null
}
PUT/api/observe/oncall/contacts/{id}
execute access
Update a contact's mutable fields.
404 when unknown; 503 when no DB.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
PUT https://<your-host>/api/observe/oncall/contacts/{id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
Content-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
JSON structure: OnCallContactUpdateRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
name | string | Optional | Client-supplied name for the resource or operation. |
role | string | Optional | Value of role in the JSON request body. |
site | string | Optional | Site code targeted by the request. |
escalation_tier | integer | Optional | Value of escalation_tier in the JSON request body. |
email | string | Optional | Value of email in the JSON request body. |
phone | string | Optional | Value of phone in the JSON request body. |
enabled | boolean | Optional | Whether the requested capability should be enabled. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
contact | JSON value | Required | Value of contact returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request PUT \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '{}' \
'https://<your-host>/api/observe/oncall/contacts/<id>'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"contact": null
}
GET/api/observe/synthetic-health-check-contract
request access
Observe synthetic health check contract.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/synthetic-health-check-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
checkMode | string | Required | Value of checkMode returned in the response body. |
dryRunRequired | boolean | Required | Value of dryRunRequired returned in the response body. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
liveChecksAllowed | boolean | Required | Value of liveChecksAllowed returned in the response body. |
externalProbesAllowed | boolean | Required | Value of externalProbesAllowed returned in the response body. |
zabbixMutationAllowed | boolean | Required | Value of zabbixMutationAllowed returned in the response body. |
rawProbeOutputAllowed | boolean | Required | Value of rawProbeOutputAllowed returned in the response body. |
supportedWorkflows | array<JSON value> | Required | Value of supportedWorkflows returned in the response body. |
checkSignals | array<JSON value> | Required | Value of checkSignals returned in the response body. |
requiredInputs | array<JSON value> | Required | Value of requiredInputs returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence returned in the response body. |
rules | array<JSON value> | Required | Value of rules returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/synthetic-health-check-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"checkMode": "<string>",
"dryRunRequired": false,
"providerCallsEnabled": false,
"liveChecksAllowed": false,
"externalProbesAllowed": false,
"zabbixMutationAllowed": false,
"rawProbeOutputAllowed": false,
"supportedWorkflows": [],
"checkSignals": [],
"requiredInputs": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": [],
"requiredEvidence": [],
"rules": []
}
GET/api/observe/synthetic/dashboard
audit access
Synthetic dashboard.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/synthetic/dashboard
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Optional | Site identifier used to scope or filter the operation. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/synthetic/dashboard'
GET/api/observe/synthetic/outages
audit access
Synthetic outages.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/synthetic/outages
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Optional | Site identifier used to scope or filter the operation. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/synthetic/outages'
POST/api/observe/synthetic/run-all
execute access
Synthetic run all.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/synthetic/run-all
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
site | string | Optional | Site identifier used to scope or filter the operation. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/synthetic/run-all'
POST/api/observe/synthetic/run/{check_id}
execute access
Synthetic run check.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
POST https://<your-host>/api/observe/synthetic/run/{check_id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
check_id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
'https://<your-host>/api/observe/synthetic/run/<check_id>'
GET/api/observe/synthetic/status/{check_id}
audit access
Synthetic status.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/synthetic/status/{check_id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
check_id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/synthetic/status/<check_id>'
GET/api/observe/zabbix-drift-remediation-contract
request access
Observe zabbix drift.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/zabbix-drift-remediation-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/zabbix-drift-remediation-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"signals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}
GET/api/observe/zabbix-onboarding-contract
request access
Observe zabbix onboarding.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An authenticated session or API bearer token is required. | The access class is enforced first; site and environment scopes narrow resources on scoped operations. |
HTTP request
GET https://<your-host>/api/observe/zabbix-onboarding-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation. |
Request body
This operation does not accept a request body.
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
providerCallsEnabled | boolean | Required | Value of providerCallsEnabled returned in the response body. |
workflows | array<JSON value> | Required | Value of workflows returned in the response body. |
signals | array<JSON value> | Required | Value of signals returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
planSections | array<JSON value> | Required | Value of planSections returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
Errors
JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.
Examples
Request
curl --silent --show-error --globoff \
--request GET \
--header 'Authorization: Bearer <token>' \
'https://<your-host>/api/observe/zabbix-onboarding-contract'
Schematic response body
Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.
Success status: 200
{
"source": "<string>",
"providerCallsEnabled": false,
"workflows": [],
"signals": [],
"requiredGuards": [],
"planSections": [],
"blockedReasons": []
}