{
  "openapi": "3.0.3",
  "info": {
    "title": "Inferrex API",
    "version": "1.0.0",
    "description": "Customer-facing REST API for the Inferrex self-healing integration platform — connect systems, infer schemas, run pipelines, and read the canonical model. MCP server (@inferrex/mcp) and a typed TypeScript SDK (@inferrex/sdk) map 1:1 to these operations.\n\n## Rate limits\n\nLimits are **per API key / workspace** (not per IP), so an agent behind one NAT egress IP gets its own ceiling. A token-bucket allows short bursts above the sustained per-minute rate. Every response carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` (and the draft `RateLimit-*` equivalents); a `429` adds `Retry-After` (seconds). Public endpoints (`/v1/openapi.json`, `/v1/pricing`, `/v1/contact`) are limited per IP. See the `x-ratelimit` extension for the per-tier table.\n\n## Webhooks (event delivery)\n\nRegister an endpoint at `POST /v1/webhooks/subscriptions` and Inferrex POSTs state-change events to it — no polling. Each delivery is HMAC-SHA256-signed: recompute the hex digest over the raw request body keyed by your subscription signing secret (`POST /v1/webhooks/subscriptions/:id/secret`, shown once) and compare to the `X-Inferrex-Signature` header. `X-Inferrex-Event-Id` is stable across redeliveries (dedupe on it); failures retry with exponential backoff then dead-letter. Filter by event type per subscription; the full catalogue is in the `x-webhooks` extension. Send yourself a signed sample with `POST /v1/webhooks/subscriptions/:id/test`.\n\n## Idempotency\n\nMake any unsafe request (POST/PUT/PATCH/DELETE) safe to retry by sending an `Idempotency-Key` header (a unique string per logical operation). The first response is cached for 24h and replayed verbatim for any retry with the same key (a replay carries `Idempotent-Replayed: true`). Reusing a key with different parameters returns `409 idempotency_key_reused`; a retry while the first is still in flight returns `409 request_in_progress`. Server errors (5xx) are never cached, so they genuinely re-run.\n\n## Async jobs\n\nLong-running operations return `202` with `{ jobId, status: \"queued\" }`. Poll `GET /v1/jobs/:id` for `{ status, progress, result, error }` — `status` advances queued → running → succeeded/failed. The jobId is stable and pollable (not an opaque queue message id).\n\n## Pagination\n\nMost list endpoints use offset pagination (`limit` + `offset`). High-volume/append-heavy collections use **keyset cursor** pagination instead: pass `limit` + an opaque `cursor`, and the response is `{ <resource>, nextCursor, hasMore }` — follow `nextCursor` until `hasMore` is false. Cursors are stable under inserts and avoid deep-offset cost. Whether an endpoint is offset- or cursor-paginated is visible from its `cursor` vs `offset` query parameter.\n\n## Authentication & scopes\n\nSend an `X-API-Key` header (workspace-scoped) or a Firebase bearer token. API keys carry granular `<resource>:<read|write|delete>` scopes; each operation declares the scope it needs (see its `security`), and the full catalogue is in the `x-api-scopes` extension. A machine-to-machine OAuth 2.0 client-credentials flow shares the same scopes. The public discovery endpoints (`/v1/openapi.json`, `/v1/pricing`, `/.well-known/llms.txt`) need no credential.\n\n## Errors\n\nEvery error is `{ error, message, retryable, docs_url, requestId? }`. `retryable` tells an agent whether the same request could succeed on retry (true for 429/503, false for client errors); `docs_url` links the error code's docs so it can self-correct without a human.\n\n## Versioning & deprecation\n\nThe contract is versioned under `/v1`. A deprecated operation is flagged `deprecated: true` here and returns a `Deprecation: true` header (plus `Sunset` with the removal date and a `Link` rel=\"successor-version\" when applicable), so clients get the migration window in-band.",
    "contact": {
      "name": "Inferrex",
      "url": "https://inferrex.com/docs"
    }
  },
  "x-ratelimit": {
    "strategy": "token-bucket",
    "scope": "Per API key / workspace for authenticated requests; per IP for public endpoints.",
    "headers": [
      "X-RateLimit-Limit",
      "X-RateLimit-Remaining",
      "X-RateLimit-Reset",
      "RateLimit-Limit",
      "RateLimit-Remaining",
      "RateLimit-Reset",
      "Retry-After"
    ],
    "retryAfterOn429": true,
    "tiers": {
      "pilot": {
        "perMinute": 120,
        "burst": 40
      },
      "starter": {
        "perMinute": 300,
        "burst": 100
      },
      "growth": {
        "perMinute": 1200,
        "burst": 300
      },
      "scale": {
        "perMinute": 3000,
        "burst": 600
      },
      "enterprise": {
        "perMinute": 6000,
        "burst": 1000
      },
      "sovereign": {
        "perMinute": 12000,
        "burst": 2000
      },
      "internal": {
        "perMinute": 60000,
        "burst": 5000
      }
    },
    "public": {
      "perMinute": 60,
      "burst": 20
    }
  },
  "x-webhooks": {
    "delivery": "Inferrex POSTs each event to your registered subscription URL(s).",
    "signature": {
      "header": "X-Inferrex-Signature",
      "algorithm": "HMAC-SHA256",
      "over": "the raw request body, hex-encoded, keyed by the subscription signing secret (POST /v1/webhooks/subscriptions/:id/secret)"
    },
    "idempotency": {
      "header": "X-Inferrex-Event-Id",
      "note": "Stable across redeliveries — dedupe on it."
    },
    "reliability": "Exponential-backoff retry then a dead-letter queue on repeated failure.",
    "payload": {
      "id": "string (event id)",
      "type": "string (event type)",
      "created": "string (ISO-8601)",
      "data": "object (the changed resource)"
    },
    "manage": "/v1/webhooks/subscriptions",
    "eventTypes": [
      "alert_rules.created",
      "alert_rules.deleted",
      "alert_rules.updated",
      "approval_policies.created",
      "approval_policies.deleted",
      "approval_policies.updated",
      "circuit_breaker_policies.created",
      "circuit_breaker_policies.deleted",
      "circuit_breaker_policies.updated",
      "environments.created",
      "environments.deleted",
      "environments.updated",
      "field_authority_rules.created",
      "field_authority_rules.deleted",
      "field_authority_rules.updated",
      "initial_loads.created",
      "initial_loads.updated",
      "invite_policies.created",
      "invite_policies.updated",
      "notification_channels.created",
      "notification_channels.deleted",
      "notification_channels.updated",
      "operation_scopes.created",
      "operation_scopes.deleted",
      "operation_scopes.updated",
      "resource_permissions.created",
      "resource_permissions.deleted",
      "restoration_requests.created",
      "retention_policies.created",
      "retention_policies.deleted",
      "retention_policies.updated",
      "schema_contracts.created",
      "schema_contracts.deleted",
      "schema_contracts.updated",
      "support_tickets.created",
      "support_tickets.updated",
      "team_members.created",
      "team_resources.created",
      "teams.created",
      "teams.deleted",
      "teams.updated",
      "webhook.test",
      "webhook_subscriptions.created",
      "webhook_subscriptions.deleted",
      "webhook_subscriptions.updated",
      "workflows.created",
      "workflows.deleted",
      "workflows.updated",
      "workspace_users.created",
      "workspace_users.deleted",
      "workspace_users.updated"
    ]
  },
  "x-api-scopes": [
    "alert-rules:delete",
    "alert-rules:read",
    "alert-rules:write",
    "approval-policies:delete",
    "approval-policies:read",
    "approval-policies:write",
    "archival:read",
    "archival:write",
    "billing:read",
    "billing:write",
    "canonical-proposals:read",
    "canonical-proposals:write",
    "circuit-breaker-policies:delete",
    "circuit-breaker-policies:read",
    "circuit-breaker-policies:write",
    "circuit-breakers:read",
    "circuit-breakers:write",
    "connections:delete",
    "connections:read",
    "connections:write",
    "field-authority-rules:delete",
    "field-authority-rules:read",
    "field-authority-rules:write",
    "gamification:read",
    "golden-records:read",
    "golden-records:write",
    "initial-loads:read",
    "initial-loads:write",
    "intelligence:delete",
    "intelligence:read",
    "intelligence:write",
    "jobs:read",
    "library:read",
    "library:write",
    "licence:write",
    "mappings:read",
    "mappings:write",
    "monitoring:read",
    "notifications:read",
    "notifications:write",
    "oauth:write",
    "onboarding:read",
    "onboarding:write",
    "operation-scopes:delete",
    "operation-scopes:read",
    "operation-scopes:write",
    "parallel-run-discrepancies:read",
    "pipeline-events:read",
    "pipelines:read",
    "pipelines:write",
    "platform-config:read",
    "platform-config:write",
    "platform-value-scores:read",
    "platform-value-scores:write",
    "portal:read",
    "portal:write",
    "restoration-requests:read",
    "restoration-requests:write",
    "retention-policies:delete",
    "retention-policies:read",
    "retention-policies:write",
    "retrieve:read",
    "schema:read",
    "settings:delete",
    "settings:read",
    "settings:write",
    "terms:read",
    "terms:write",
    "unified:delete",
    "unified:read",
    "unified:write",
    "workflow-runs:read",
    "workflow-runs:write",
    "workflows:delete",
    "workflows:read",
    "workflows:write",
    "workspace:delete",
    "workspace:read",
    "workspace:write"
  ],
  "servers": [
    {
      "url": "https://api.inferrex.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "archival"
    },
    {
      "name": "billing"
    },
    {
      "name": "connections"
    },
    {
      "name": "contact"
    },
    {
      "name": "core"
    },
    {
      "name": "credentials"
    },
    {
      "name": "data_protection"
    },
    {
      "name": "event_subscriptions"
    },
    {
      "name": "gamification"
    },
    {
      "name": "golden_record"
    },
    {
      "name": "intelligence"
    },
    {
      "name": "jobs"
    },
    {
      "name": "library"
    },
    {
      "name": "licence"
    },
    {
      "name": "mappings"
    },
    {
      "name": "meta"
    },
    {
      "name": "migration"
    },
    {
      "name": "monitoring"
    },
    {
      "name": "notifications"
    },
    {
      "name": "oauth"
    },
    {
      "name": "onboarding"
    },
    {
      "name": "operations"
    },
    {
      "name": "pipelines"
    },
    {
      "name": "platform_config"
    },
    {
      "name": "portal"
    },
    {
      "name": "pricing"
    },
    {
      "name": "rbac"
    },
    {
      "name": "retrieval"
    },
    {
      "name": "schema"
    },
    {
      "name": "settings"
    },
    {
      "name": "sso"
    },
    {
      "name": "terms"
    },
    {
      "name": "unified_api"
    },
    {
      "name": "workflows"
    },
    {
      "name": "workspace"
    }
  ],
  "paths": {
    "/v1/alert-rules": {
      "get": {
        "operationId": "AlertRulesList",
        "tags": [
          "monitoring"
        ],
        "summary": "Alert Rules List",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_type_match",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_type_match_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity_match_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cooldown_minutes_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "cooldown_minutes_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "last_fired_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "last_fired_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fire_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "fire_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "acknowledged_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "acknowledged_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "acknowledged_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acknowledged_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "name",
                "description",
                "event_type_match",
                "connection_id",
                "cooldown_minutes",
                "enabled",
                "last_fired_at",
                "fire_count",
                "acknowledged_at",
                "acknowledged_by",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_type_match": {
                      "type": "string",
                      "nullable": true
                    },
                    "severity_match": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "condition_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "notification_channels": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "cooldown_minutes": {
                      "type": "integer"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_fired_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "fire_count": {
                      "type": "integer"
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "event_type_match": "string",
                  "severity_match": [
                    "string"
                  ],
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "condition_config": {},
                  "notification_channels": {},
                  "cooldown_minutes": 0,
                  "enabled": true,
                  "last_fired_at": "string",
                  "fire_count": 0,
                  "acknowledged_at": "string",
                  "acknowledged_by": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "AlertRulesCreate",
        "tags": [
          "monitoring"
        ],
        "summary": "Alert Rules Create",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "event_type_match": {
                    "type": "string",
                    "nullable": true
                  },
                  "severity_match": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true
                  },
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "condition_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "notification_channels": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "cooldown_minutes": {
                    "type": "integer"
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "last_fired_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "fire_count": {
                    "type": "integer"
                  },
                  "acknowledged_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "acknowledged_by": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              },
              "example": {
                "name": "string",
                "description": "string",
                "event_type_match": "string",
                "severity_match": [
                  "string"
                ],
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "condition_config": {},
                "notification_channels": {},
                "cooldown_minutes": 0,
                "enabled": true,
                "last_fired_at": "string",
                "fire_count": 0,
                "acknowledged_at": "string",
                "acknowledged_by": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_type_match": {
                      "type": "string",
                      "nullable": true
                    },
                    "severity_match": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "condition_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "notification_channels": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "cooldown_minutes": {
                      "type": "integer"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_fired_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "fire_count": {
                      "type": "integer"
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "event_type_match": "string",
                  "severity_match": [
                    "string"
                  ],
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "condition_config": {},
                  "notification_channels": {},
                  "cooldown_minutes": 0,
                  "enabled": true,
                  "last_fired_at": "string",
                  "fire_count": 0,
                  "acknowledged_at": "string",
                  "acknowledged_by": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/alert-rules/{id}": {
      "delete": {
        "operationId": "AlertRulesDelete",
        "tags": [
          "monitoring"
        ],
        "summary": "Alert Rules Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "AlertRulesGet",
        "tags": [
          "monitoring"
        ],
        "summary": "Alert Rules Get",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_type_match": {
                      "type": "string",
                      "nullable": true
                    },
                    "severity_match": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "condition_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "notification_channels": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "cooldown_minutes": {
                      "type": "integer"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_fired_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "fire_count": {
                      "type": "integer"
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "event_type_match": "string",
                  "severity_match": [
                    "string"
                  ],
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "condition_config": {},
                  "notification_channels": {},
                  "cooldown_minutes": 0,
                  "enabled": true,
                  "last_fired_at": "string",
                  "fire_count": 0,
                  "acknowledged_at": "string",
                  "acknowledged_by": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "AlertRulesUpdate",
        "tags": [
          "monitoring"
        ],
        "summary": "Alert Rules Update",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "event_type_match": {
                    "type": "string",
                    "nullable": true
                  },
                  "severity_match": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true
                  },
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "condition_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "notification_channels": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "cooldown_minutes": {
                    "type": "integer"
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "last_fired_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "fire_count": {
                    "type": "integer"
                  },
                  "acknowledged_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "acknowledged_by": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "example": {
                "name": "string",
                "description": "string",
                "event_type_match": "string",
                "severity_match": [
                  "string"
                ],
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "condition_config": {},
                "notification_channels": {},
                "cooldown_minutes": 0,
                "enabled": true,
                "last_fired_at": "string",
                "fire_count": 0,
                "acknowledged_at": "string",
                "acknowledged_by": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_type_match": {
                      "type": "string",
                      "nullable": true
                    },
                    "severity_match": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "condition_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "notification_channels": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "cooldown_minutes": {
                      "type": "integer"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_fired_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "fire_count": {
                      "type": "integer"
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "event_type_match": "string",
                  "severity_match": [
                    "string"
                  ],
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "condition_config": {},
                  "notification_channels": {},
                  "cooldown_minutes": 0,
                  "enabled": true,
                  "last_fired_at": "string",
                  "fire_count": 0,
                  "acknowledged_at": "string",
                  "acknowledged_by": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/alert-rules/{id}/acknowledge": {
      "post": {
        "operationId": "AcknowledgeAlert",
        "tags": [
          "monitoring"
        ],
        "summary": "Acknowledge Alert",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/alert-rules/{id}/test": {
      "post": {
        "operationId": "TestAlert",
        "tags": [
          "monitoring"
        ],
        "summary": "Test Alert",
        "security": [
          {
            "ApiKeyAuth": [
              "alert-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "alert-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dispatched": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dispatched"
                  ]
                },
                "example": {
                  "dispatched": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/approval-policies": {
      "get": {
        "operationId": "ApprovalPoliciesList",
        "tags": [
          "golden_record"
        ],
        "summary": "Approval Policies List",
        "security": [
          {
            "ApiKeyAuth": [
              "approval-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "approval-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "required_approvers_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "entity_type",
                "enabled",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "auto_approve_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "required_approvers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "auto_approve_conditions": {},
                  "required_approvers": [
                    "string"
                  ],
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "ApprovalPoliciesCreate",
        "tags": [
          "golden_record"
        ],
        "summary": "Approval Policies Create",
        "security": [
          {
            "ApiKeyAuth": [
              "approval-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "approval-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entity_type": {
                    "type": "string"
                  },
                  "auto_approve_conditions": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "required_approvers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "entity_type"
                ]
              },
              "example": {
                "entity_type": "string",
                "auto_approve_conditions": {},
                "required_approvers": [
                  "string"
                ],
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "auto_approve_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "required_approvers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "auto_approve_conditions": {},
                  "required_approvers": [
                    "string"
                  ],
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/approval-policies/{id}": {
      "delete": {
        "operationId": "ApprovalPoliciesDelete",
        "tags": [
          "golden_record"
        ],
        "summary": "Approval Policies Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "approval-policies:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "approval-policies:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "ApprovalPoliciesGet",
        "tags": [
          "golden_record"
        ],
        "summary": "Approval Policies Get",
        "security": [
          {
            "ApiKeyAuth": [
              "approval-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "approval-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "auto_approve_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "required_approvers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "auto_approve_conditions": {},
                  "required_approvers": [
                    "string"
                  ],
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "ApprovalPoliciesUpdate",
        "tags": [
          "golden_record"
        ],
        "summary": "Approval Policies Update",
        "security": [
          {
            "ApiKeyAuth": [
              "approval-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "approval-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entity_type": {
                    "type": "string"
                  },
                  "auto_approve_conditions": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "required_approvers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "entity_type": "string",
                "auto_approve_conditions": {},
                "required_approvers": [
                  "string"
                ],
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "auto_approve_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "required_approvers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "auto_approve_conditions": {},
                  "required_approvers": [
                    "string"
                  ],
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/archival/activate": {
      "post": {
        "operationId": "ActivateArchival",
        "tags": [
          "archival"
        ],
        "summary": "Activate Archival",
        "security": [
          {
            "ApiKeyAuth": [
              "archival:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "archival:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pipelineId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "entityType": {
                    "type": "string"
                  },
                  "jurisdiction": {
                    "type": "string",
                    "default": "GB"
                  },
                  "warmArchiveAfterDays": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "coldArchiveAfterDays": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "deleteAfterDays": {
                    "type": "integer",
                    "minimum": 30,
                    "maximum": 3650,
                    "nullable": true
                  },
                  "criteria": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "legalHold": {
                    "type": "boolean",
                    "default": false
                  },
                  "retrievalTransparency": {
                    "type": "boolean",
                    "default": true
                  },
                  "complianceBasis": {
                    "type": "string"
                  },
                  "complianceSource": {
                    "type": "string"
                  }
                },
                "required": [
                  "pipelineId",
                  "entityType",
                  "warmArchiveAfterDays",
                  "coldArchiveAfterDays",
                  "criteria"
                ]
              },
              "example": {
                "pipelineId": "00000000-0000-0000-0000-000000000000",
                "entityType": "string",
                "jurisdiction": "GB",
                "warmArchiveAfterDays": 0,
                "coldArchiveAfterDays": 0,
                "deleteAfterDays": 0,
                "criteria": {},
                "legalHold": false,
                "retrievalTransparency": true,
                "complianceBasis": "string",
                "complianceSource": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "policy": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "policy"
                  ]
                },
                "example": {
                  "policy": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/archival/certificates": {
      "get": {
        "operationId": "ListDeletionCertificates",
        "tags": [
          "archival"
        ],
        "summary": "List Deletion Certificates",
        "security": [
          {
            "ApiKeyAuth": [
              "archival:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "archival:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "certificates": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "certificates"
                  ]
                },
                "example": {
                  "certificates": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/archival/dashboard": {
      "get": {
        "operationId": "GetArchivalDashboard",
        "tags": [
          "archival"
        ],
        "summary": "Get Archival Dashboard",
        "security": [
          {
            "ApiKeyAuth": [
              "archival:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "archival:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "policies": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "totalArchivedRecords": {
                      "type": "integer"
                    },
                    "totalBytes": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "policies",
                    "totalArchivedRecords",
                    "totalBytes"
                  ]
                },
                "example": {
                  "policies": {},
                  "totalArchivedRecords": 0,
                  "totalBytes": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/archival/records": {
      "get": {
        "operationId": "ListArchivedRecords",
        "tags": [
          "archival"
        ],
        "summary": "List Archived Records",
        "security": [
          {
            "ApiKeyAuth": [
              "archival:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "archival:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "storageTier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "warm",
                "compliance",
                "elective"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "records"
                  ]
                },
                "example": {
                  "records": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/archival/restore": {
      "post": {
        "operationId": "RestoreRecords",
        "tags": [
          "archival"
        ],
        "summary": "Restore Records",
        "security": [
          {
            "ApiKeyAuth": [
              "archival:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "archival:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "recordIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                },
                "required": [
                  "recordIds"
                ]
              },
              "example": {
                "recordIds": [
                  "00000000-0000-0000-0000-000000000000"
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "recordCount": {
                      "type": "integer"
                    },
                    "recordIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid"
                      }
                    }
                  },
                  "required": [
                    "status",
                    "recordCount",
                    "recordIds"
                  ]
                },
                "example": {
                  "status": "string",
                  "recordCount": 0,
                  "recordIds": [
                    "00000000-0000-0000-0000-000000000000"
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/billing/checkout": {
      "post": {
        "operationId": "CreateCheckout",
        "tags": [
          "billing"
        ],
        "summary": "Create Checkout",
        "security": [
          {
            "ApiKeyAuth": [
              "billing:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "billing:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tier": {
                    "type": "string",
                    "enum": [
                      "pilot",
                      "starter",
                      "growth",
                      "scale"
                    ]
                  },
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "annual"
                    ],
                    "default": "monthly"
                  },
                  "currency": {
                    "type": "string",
                    "enum": [
                      "gbp",
                      "eur",
                      "usd"
                    ],
                    "default": "gbp"
                  }
                },
                "required": [
                  "tier"
                ]
              },
              "example": {
                "tier": "pilot",
                "frequency": "monthly",
                "currency": "gbp"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "checkoutUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "checkoutUrl"
                  ]
                },
                "example": {
                  "checkoutUrl": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/billing/portal": {
      "post": {
        "operationId": "CreatePortalSession",
        "tags": [
          "billing"
        ],
        "summary": "Create Portal Session",
        "security": [
          {
            "ApiKeyAuth": [
              "billing:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "billing:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "returnUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              },
              "example": {
                "returnUrl": "https://example.com"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "portalUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "portalUrl"
                  ]
                },
                "example": {
                  "portalUrl": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/billing/profile": {
      "post": {
        "operationId": "SubmitProfile",
        "tags": [
          "billing"
        ],
        "summary": "Submit Profile",
        "security": [
          {
            "ApiKeyAuth": [
              "billing:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "billing:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "companyName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "companyWebsite": {
                    "type": "string",
                    "format": "uri"
                  },
                  "companySize": {
                    "type": "string",
                    "enum": [
                      "1-10",
                      "11-50",
                      "51-200",
                      "201-1000",
                      "1001-5000",
                      "5000+"
                    ]
                  },
                  "industry": {
                    "type": "string"
                  },
                  "jobTitle": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "useCase": {
                    "type": "string"
                  },
                  "systemsToConnect": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "expectedRecordVolume": {
                    "type": "string",
                    "enum": [
                      "under_100k",
                      "100k_1m",
                      "1m_10m",
                      "10m_100m",
                      "over_100m"
                    ]
                  },
                  "countryCode": {
                    "type": "string",
                    "default": "GB"
                  },
                  "billingAddress": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "vatNumber": {
                    "type": "string"
                  },
                  "dataResidency": {
                    "type": "string",
                    "enum": [
                      "eu",
                      "uk",
                      "any"
                    ],
                    "default": "eu"
                  }
                },
                "required": [
                  "companyName",
                  "companySize",
                  "industry",
                  "jobTitle",
                  "useCase"
                ]
              },
              "example": {
                "companyName": "string",
                "companyWebsite": "https://example.com",
                "companySize": "1-10",
                "industry": "string",
                "jobTitle": "string",
                "phone": "string",
                "useCase": "string",
                "systemsToConnect": [
                  "string"
                ],
                "expectedRecordVolume": "under_100k",
                "countryCode": "GB",
                "billingAddress": {},
                "vatNumber": "string",
                "dataResidency": "eu"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                },
                "example": {
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/billing/request-upgrade": {
      "post": {
        "operationId": "RequestUpgrade",
        "tags": [
          "billing"
        ],
        "summary": "Request Upgrade",
        "security": [
          {
            "ApiKeyAuth": [
              "billing:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "billing:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "requestedTier": {
                    "type": "string",
                    "enum": [
                      "growth",
                      "scale",
                      "enterprise"
                    ]
                  },
                  "reason": {
                    "type": "string"
                  },
                  "systemsPlanned": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "requestedTier",
                  "reason"
                ]
              },
              "example": {
                "requestedTier": "growth",
                "reason": "string",
                "systemsPlanned": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "requestId"
                  ]
                },
                "example": {
                  "requestId": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/billing/status": {
      "get": {
        "operationId": "GetBillingStatus",
        "tags": [
          "billing"
        ],
        "summary": "Get Billing Status",
        "security": [
          {
            "ApiKeyAuth": [
              "billing:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "billing:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "string"
                    },
                    "trialEndsAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "stripeCustomerId": {
                      "type": "string",
                      "nullable": true
                    },
                    "subscriptionId": {
                      "type": "string",
                      "nullable": true
                    },
                    "paymentStatus": {
                      "type": "string"
                    },
                    "gracePeriodEndsAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "profileComplete": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "status",
                    "tier",
                    "paymentStatus",
                    "profileComplete"
                  ]
                },
                "example": {
                  "status": "string",
                  "tier": "string",
                  "trialEndsAt": "string",
                  "stripeCustomerId": "string",
                  "subscriptionId": "string",
                  "paymentStatus": "string",
                  "gracePeriodEndsAt": "string",
                  "profileComplete": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/canonical-proposals": {
      "get": {
        "operationId": "CanonicalChangeProposalsList",
        "tags": [
          "golden_record"
        ],
        "summary": "Canonical Change Proposals List",
        "security": [
          {
            "ApiKeyAuth": [
              "canonical-proposals:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "canonical-proposals:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_cluster_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "risk_level",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "risk_level_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejected_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejected_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejection_reason",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejection_reason_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "approved_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "rejected_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "rejected_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "entity_cluster_id",
                "entity_type",
                "risk_level",
                "status",
                "approved_by",
                "rejected_by",
                "rejection_reason",
                "approved_at",
                "rejected_at",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_cluster_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "proposed_payload": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "field_diffs": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "conflicts": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "impact_analysis": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "risk_level": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejection_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_cluster_id",
                    "entity_type",
                    "proposed_payload"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_cluster_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "proposed_payload": {},
                  "field_diffs": {},
                  "conflicts": {},
                  "impact_analysis": {},
                  "risk_level": "string",
                  "status": "string",
                  "approved_by": "string",
                  "rejected_by": "string",
                  "rejection_reason": "string",
                  "approved_at": "string",
                  "rejected_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/canonical-proposals/{id}": {
      "get": {
        "operationId": "CanonicalChangeProposalsGet",
        "tags": [
          "golden_record"
        ],
        "summary": "Canonical Change Proposals Get",
        "security": [
          {
            "ApiKeyAuth": [
              "canonical-proposals:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "canonical-proposals:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_cluster_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "proposed_payload": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "field_diffs": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "conflicts": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "impact_analysis": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "risk_level": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejection_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_cluster_id",
                    "entity_type",
                    "proposed_payload"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_cluster_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "proposed_payload": {},
                  "field_diffs": {},
                  "conflicts": {},
                  "impact_analysis": {},
                  "risk_level": "string",
                  "status": "string",
                  "approved_by": "string",
                  "rejected_by": "string",
                  "rejection_reason": "string",
                  "approved_at": "string",
                  "rejected_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/canonical-proposals/{id}/approve": {
      "post": {
        "operationId": "ApproveProposal",
        "tags": [
          "golden_record"
        ],
        "summary": "Approve Proposal",
        "security": [
          {
            "ApiKeyAuth": [
              "canonical-proposals:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "canonical-proposals:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/canonical-proposals/{id}/reject": {
      "post": {
        "operationId": "RejectProposal",
        "tags": [
          "golden_record"
        ],
        "summary": "Reject Proposal",
        "security": [
          {
            "ApiKeyAuth": [
              "canonical-proposals:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "canonical-proposals:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reason"
                ]
              },
              "example": {
                "reason": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/canonical-proposals/bulk-approve": {
      "post": {
        "operationId": "BulkApprove",
        "tags": [
          "golden_record"
        ],
        "summary": "Bulk Approve",
        "security": [
          {
            "ApiKeyAuth": [
              "canonical-proposals:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "canonical-proposals:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "proposalIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "proposalIds"
                ]
              },
              "example": {
                "proposalIds": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "approved": {
                      "type": "integer"
                    },
                    "failed": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "approved",
                    "failed"
                  ]
                },
                "example": {
                  "approved": 0,
                  "failed": [
                    "string"
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breaker-policies": {
      "get": {
        "operationId": "CircuitBreakerPoliciesList",
        "tags": [
          "monitoring"
        ],
        "summary": "Circuit Breaker Policies List",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breaker-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breaker-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "auto_resolve_hours_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "auto_resolve_hours_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "connection_id",
                "entity_type",
                "rule_type",
                "action",
                "auto_resolve_hours",
                "enabled",
                "created_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "rule_type": {
                      "type": "string"
                    },
                    "threshold_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "action": {
                      "type": "string"
                    },
                    "auto_resolve_hours": {
                      "type": "integer",
                      "nullable": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "rule_type",
                    "threshold_config"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "rule_type": "string",
                  "threshold_config": {},
                  "action": "string",
                  "auto_resolve_hours": 0,
                  "enabled": true,
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "CircuitBreakerPoliciesCreate",
        "tags": [
          "monitoring"
        ],
        "summary": "Circuit Breaker Policies Create",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breaker-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breaker-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "rule_type": {
                    "type": "string"
                  },
                  "threshold_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "action": {
                    "type": "string"
                  },
                  "auto_resolve_hours": {
                    "type": "integer",
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "rule_type",
                  "threshold_config"
                ]
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "entity_type": "string",
                "rule_type": "string",
                "threshold_config": {},
                "action": "string",
                "auto_resolve_hours": 0,
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "rule_type": {
                      "type": "string"
                    },
                    "threshold_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "action": {
                      "type": "string"
                    },
                    "auto_resolve_hours": {
                      "type": "integer",
                      "nullable": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "rule_type",
                    "threshold_config"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "rule_type": "string",
                  "threshold_config": {},
                  "action": "string",
                  "auto_resolve_hours": 0,
                  "enabled": true,
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breaker-policies/{id}": {
      "delete": {
        "operationId": "CircuitBreakerPoliciesDelete",
        "tags": [
          "monitoring"
        ],
        "summary": "Circuit Breaker Policies Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breaker-policies:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breaker-policies:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "CircuitBreakerPoliciesGet",
        "tags": [
          "monitoring"
        ],
        "summary": "Circuit Breaker Policies Get",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breaker-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breaker-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "rule_type": {
                      "type": "string"
                    },
                    "threshold_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "action": {
                      "type": "string"
                    },
                    "auto_resolve_hours": {
                      "type": "integer",
                      "nullable": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "rule_type",
                    "threshold_config"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "rule_type": "string",
                  "threshold_config": {},
                  "action": "string",
                  "auto_resolve_hours": 0,
                  "enabled": true,
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "CircuitBreakerPoliciesUpdate",
        "tags": [
          "monitoring"
        ],
        "summary": "Circuit Breaker Policies Update",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breaker-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breaker-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "rule_type": {
                    "type": "string"
                  },
                  "threshold_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "action": {
                    "type": "string"
                  },
                  "auto_resolve_hours": {
                    "type": "integer",
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "entity_type": "string",
                "rule_type": "string",
                "threshold_config": {},
                "action": "string",
                "auto_resolve_hours": 0,
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "rule_type": {
                      "type": "string"
                    },
                    "threshold_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "action": {
                      "type": "string"
                    },
                    "auto_resolve_hours": {
                      "type": "integer",
                      "nullable": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "rule_type",
                    "threshold_config"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "rule_type": "string",
                  "threshold_config": {},
                  "action": "string",
                  "auto_resolve_hours": 0,
                  "enabled": true,
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers": {
      "get": {
        "operationId": "StreamCircuitBreakersList",
        "tags": [
          "monitoring"
        ],
        "summary": "Stream Circuit Breakers List",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tripped_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tripped_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "affected_records_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "affected_records_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "quarantined_data_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quarantined_data_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tripped_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tripped_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "reviewed_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reviewed_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reviewed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "reviewed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "resolution",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolution_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolution_notes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolution_notes_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolved_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "resolved_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "auto_resolve_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "auto_resolve_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "connection_id",
                "entity_type",
                "status",
                "tripped_by",
                "severity",
                "affected_records",
                "quarantined_data_key",
                "tripped_at",
                "reviewed_by",
                "reviewed_at",
                "resolution",
                "resolution_notes",
                "resolved_at",
                "auto_resolve_at"
              ],
              "default": "tripped_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "tripped_by": {
                      "type": "string"
                    },
                    "severity": {
                      "type": "string"
                    },
                    "detection_details": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "affected_records": {
                      "type": "integer",
                      "nullable": true
                    },
                    "quarantined_data_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "baseline_stats": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "tripped_at": {
                      "type": "string"
                    },
                    "reviewed_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "reviewed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolution": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolution_notes": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "auto_resolve_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "tripped_by",
                    "severity",
                    "detection_details"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "status": "string",
                  "tripped_by": "string",
                  "severity": "string",
                  "detection_details": {},
                  "affected_records": 0,
                  "quarantined_data_key": "string",
                  "baseline_stats": {},
                  "tripped_at": "string",
                  "reviewed_by": "string",
                  "reviewed_at": "string",
                  "resolution": "string",
                  "resolution_notes": "string",
                  "resolved_at": "string",
                  "auto_resolve_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}": {
      "get": {
        "operationId": "StreamCircuitBreakersGet",
        "tags": [
          "monitoring"
        ],
        "summary": "Stream Circuit Breakers Get",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "tripped_by": {
                      "type": "string"
                    },
                    "severity": {
                      "type": "string"
                    },
                    "detection_details": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "affected_records": {
                      "type": "integer",
                      "nullable": true
                    },
                    "quarantined_data_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "baseline_stats": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "tripped_at": {
                      "type": "string"
                    },
                    "reviewed_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "reviewed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolution": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolution_notes": {
                      "type": "string",
                      "nullable": true
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "auto_resolve_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "tripped_by",
                    "severity",
                    "detection_details"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "status": "string",
                  "tripped_by": "string",
                  "severity": "string",
                  "detection_details": {},
                  "affected_records": 0,
                  "quarantined_data_key": "string",
                  "baseline_stats": {},
                  "tripped_at": "string",
                  "reviewed_by": "string",
                  "reviewed_at": "string",
                  "resolution": "string",
                  "resolution_notes": "string",
                  "resolved_at": "string",
                  "auto_resolve_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}/approve": {
      "post": {
        "operationId": "ApproveQuarantined",
        "tags": [
          "monitoring"
        ],
        "summary": "Approve Quarantined",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}/force-close": {
      "post": {
        "operationId": "ForceClose",
        "tags": [
          "monitoring"
        ],
        "summary": "Force Close",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}/hold-open": {
      "post": {
        "operationId": "HoldOpen",
        "tags": [
          "monitoring"
        ],
        "summary": "Hold Open",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}/partial-approve": {
      "post": {
        "operationId": "PartialApprove",
        "tags": [
          "monitoring"
        ],
        "summary": "Partial Approve",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "approved_record_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "notes": {
                    "type": "string"
                  }
                },
                "required": [
                  "approved_record_ids"
                ]
              },
              "example": {
                "approved_record_ids": [
                  "string"
                ],
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/circuit-breakers/{id}/reject": {
      "post": {
        "operationId": "RejectQuarantined",
        "tags": [
          "monitoring"
        ],
        "summary": "Reject Quarantined",
        "security": [
          {
            "ApiKeyAuth": [
              "circuit-breakers:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "circuit-breakers:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections": {
      "get": {
        "operationId": "ListConnections",
        "tags": [
          "connections"
        ],
        "summary": "List Connections",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connections": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "connections"
                  ]
                },
                "example": {
                  "connections": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}": {
      "delete": {
        "operationId": "DeleteConnection",
        "tags": [
          "connections"
        ],
        "summary": "Delete Connection",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:delete"
            ]
          }
        ],
        "description": "Archive a connection (soft-delete: sets status=archived so it drops out of pipeline-eligible lists). Rejected 409 connection_in_use when a live pipeline still references it — the row is preserved so the pipelines FK is never violated.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "connectionId",
                    "status"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "patch": {
        "operationId": "UpdateConnection",
        "tags": [
          "connections"
        ],
        "summary": "Update Connection",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "description": "Rename a connection (edit its display name). Read-modify-write on inferrex.connections, scoped to the customer.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "displayName": {
                    "type": "string"
                  }
                },
                "required": [
                  "displayName"
                ]
              },
              "example": {
                "displayName": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "displayName": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "connectionId",
                    "displayName",
                    "status"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "displayName": "string",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/approve": {
      "post": {
        "operationId": "ApproveConnection",
        "tags": [
          "connections"
        ],
        "summary": "Approve Connection",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "approved": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "approved"
                  ]
                },
                "example": {
                  "approved": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/approve-field": {
      "post": {
        "operationId": "ApproveField",
        "tags": [
          "connections"
        ],
        "summary": "Approve Field",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fieldPath": {
                    "type": "string"
                  },
                  "approved": {
                    "type": "boolean"
                  },
                  "correctedType": {
                    "type": "string"
                  },
                  "correctedDisplayName": {
                    "type": "string"
                  },
                  "correctedDescription": {
                    "type": "string"
                  },
                  "correctedAuthority": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "fieldPath",
                  "approved"
                ]
              },
              "example": {
                "fieldPath": "string",
                "approved": true,
                "correctedType": "string",
                "correctedDisplayName": "string",
                "correctedDescription": "string",
                "correctedAuthority": "string",
                "reason": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "manifestId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "fieldPath": {
                      "type": "string"
                    },
                    "approved": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "connectionId",
                    "manifestId",
                    "fieldPath",
                    "approved"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "manifestId": "00000000-0000-0000-0000-000000000000",
                  "fieldPath": "string",
                  "approved": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/assess-scope": {
      "post": {
        "operationId": "AssessScope",
        "tags": [
          "connections"
        ],
        "summary": "Assess Scope",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "description": "Probe provider API for record counts and storage estimates",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "assessed_at": {
                      "type": "string"
                    },
                    "entities": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "totals": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "connection_id",
                    "assessed_at",
                    "entities",
                    "totals"
                  ]
                },
                "example": {
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "assessed_at": "string",
                  "entities": {},
                  "totals": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/audit": {
      "get": {
        "operationId": "GetConnectionAudit",
        "tags": [
          "connections"
        ],
        "summary": "Get Connection Audit",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "manifestId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "audit": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "connectionId",
                    "audit"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "manifestId": "00000000-0000-0000-0000-000000000000",
                  "audit": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/credentials": {
      "delete": {
        "operationId": "RevokeCredentials",
        "tags": [
          "credentials"
        ],
        "summary": "Revoke Credentials",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "credentialKey": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "credentialKey": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "connectionId"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "ListCredentials",
        "tags": [
          "credentials"
        ],
        "summary": "List Credentials",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "credentials": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "connectionId",
                    "credentials"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "credentials": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "StoreCredentials",
        "tags": [
          "credentials"
        ],
        "summary": "Store Credentials",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "credentials": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "authType": {
                    "type": "string",
                    "enum": [
                      "oauth2",
                      "api-key",
                      "basic",
                      "bearer",
                      "none",
                      "service-account"
                    ]
                  },
                  "expiresAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "credentials",
                  "authType"
                ]
              },
              "example": {
                "credentials": {},
                "authType": "oauth2",
                "expiresAt": "2026-01-01T00:00:00Z"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "storedKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "authType": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "connectionId",
                    "storedKeys",
                    "authType"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "storedKeys": [
                    "string"
                  ],
                  "authType": "string",
                  "expiresAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/credentials/rotate": {
      "post": {
        "operationId": "RotateCredentials",
        "tags": [
          "credentials"
        ],
        "summary": "Rotate Credentials",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "rotatedKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "authType": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "connectionId",
                    "rotatedKeys",
                    "authType",
                    "message"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "rotatedKeys": [
                    "string"
                  ],
                  "authType": "string",
                  "message": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/emit/{protocol}": {
      "get": {
        "operationId": "EmitConnection",
        "tags": [
          "connections"
        ],
        "summary": "Emit Connection",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "description": "Serve a connected system's canonical model AS a target protocol (GraphQL, OpenAPI, …) — the any-to-any \"out\" side. Reads the stored canonical entities and emits the protocol schema. Deterministic, 0 AI ops.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "protocol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string"
                    },
                    "protocol": {
                      "type": "string"
                    },
                    "schema": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "connectionId",
                    "protocol",
                    "schema"
                  ]
                },
                "example": {
                  "connectionId": "string",
                  "protocol": "string",
                  "schema": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/manifest": {
      "get": {
        "operationId": "GetConnectionManifest",
        "tags": [
          "connections"
        ],
        "summary": "Get Connection Manifest",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "description": "The current ManifestRecord for a connection — the platform wrapper (id, version, type, status, lineage) carries the inferred `manifest` content. Consumers (connection detail / manifest review) read `record.manifestType` and `record.manifest`.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connectionId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "manifestType": {
                      "type": "string"
                    },
                    "version": {
                      "type": "integer"
                    },
                    "manifest": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "parentId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "createdBy": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "customerId",
                    "manifestType",
                    "version",
                    "manifest",
                    "status",
                    "createdBy",
                    "createdAt"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customerId": "00000000-0000-0000-0000-000000000000",
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "manifestType": "string",
                  "version": 0,
                  "manifest": {},
                  "status": "string",
                  "parentId": "00000000-0000-0000-0000-000000000000",
                  "createdBy": "string",
                  "createdAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/match": {
      "post": {
        "operationId": "MatchConnections",
        "tags": [
          "connections"
        ],
        "summary": "Match Connections",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "description": "Phase-2 cross-system field matching: matches this connection against a target connection via the ai-agent (L16 + L15/L17 pair refinement), persists a MappingManifest carrying the open entityRelationship + suggestedTransform signals, and returns its id for the mapping-review UI.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "targetConnectionId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "targetConnectionId"
                ]
              },
              "example": {
                "targetConnectionId": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mappingId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "mappingId"
                  ]
                },
                "example": {
                  "mappingId": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/{id}/status": {
      "get": {
        "operationId": "GetConnectionStatus",
        "tags": [
          "connections"
        ],
        "summary": "Get Connection Status",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "manifestId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "manifestStatus": {
                      "type": "string",
                      "nullable": true
                    },
                    "manifestVersion": {
                      "type": "integer",
                      "nullable": true
                    },
                    "overallConfidence": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "required": [
                    "connectionId",
                    "status",
                    "createdAt"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "status": "string",
                  "createdAt": "string",
                  "manifestId": "00000000-0000-0000-0000-000000000000",
                  "manifestStatus": "string",
                  "manifestVersion": 0,
                  "overallConfidence": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/capabilities/{vendorKey}": {
      "get": {
        "operationId": "ConnectionCapabilities",
        "tags": [
          "connections"
        ],
        "summary": "Connection Capabilities",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "description": "A vendor's ranked multi-vertical capabilities (golden layer, 0 AI ops).",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "vendor": {
                      "type": "string"
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "vendor",
                    "capabilities"
                  ]
                },
                "example": {
                  "vendor": "string",
                  "capabilities": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/detect-auth": {
      "post": {
        "operationId": "DetectAuth",
        "tags": [
          "connections"
        ],
        "summary": "Detect Auth",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "description": "Surface the auth an endpoint requires (Nango corpus domain-match + 401 WWW-Authenticate probe) so the connect UI prompts for the right credential BEFORE inference. Deterministic, 0 AI ops.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "endpoint": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "endpoint"
                ]
              },
              "example": {
                "endpoint": "https://example.com"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "authType": {
                      "type": "string"
                    },
                    "authMode": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "credentialFields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "source": {
                      "type": "string"
                    },
                    "confidence": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "endpoint",
                    "authType",
                    "credentialFields",
                    "source",
                    "confidence"
                  ]
                },
                "example": {
                  "endpoint": "string",
                  "authType": "string",
                  "authMode": "string",
                  "provider": "string",
                  "credentialFields": [
                    "string"
                  ],
                  "source": "string",
                  "confidence": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/infer": {
      "post": {
        "operationId": "InferConnection",
        "tags": [
          "connections"
        ],
        "summary": "Infer Connection",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "authType": {
                    "type": "string",
                    "enum": [
                      "oauth2",
                      "api-key",
                      "basic",
                      "bearer",
                      "none",
                      "service-account"
                    ]
                  },
                  "credentials": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "existingMcpServer": {
                    "type": "string"
                  },
                  "cliSessionId": {
                    "type": "string"
                  },
                  "cliBinary": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "high",
                      "normal",
                      "low"
                    ],
                    "default": "normal"
                  }
                },
                "required": [
                  "url",
                  "authType"
                ]
              },
              "example": {
                "url": "https://example.com",
                "authType": "oauth2",
                "credentials": {},
                "existingMcpServer": "string",
                "cliSessionId": "string",
                "cliBinary": "string",
                "priority": "high"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "jobId": {
                      "type": "string"
                    },
                    "estimatedTimeSeconds": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "connectionId",
                    "jobId",
                    "estimatedTimeSeconds"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "jobId": "string",
                  "estimatedTimeSeconds": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/route": {
      "post": {
        "operationId": "RouteRecord",
        "tags": [
          "connections"
        ],
        "summary": "Route Record",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:write"
            ]
          }
        ],
        "description": "Route a data record from one connected system's shape to another's, through the canonical pivot. Resolves source + target entities (by archetype), pairs fields by canonical role, and applies per-field value transforms (encoding reconciliation: epoch↔ISO, bool↔text, …). The any-to-any \"data flows\" endpoint. Deterministic, 0 AI ops; lossy field conversions surfaced.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "to": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "entity": {
                    "type": "string"
                  },
                  "record": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "from",
                  "to",
                  "record"
                ]
              },
              "example": {
                "from": "00000000-0000-0000-0000-000000000000",
                "to": "00000000-0000-0000-0000-000000000000",
                "entity": "string",
                "record": {}
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    },
                    "fromEntity": {
                      "type": "string"
                    },
                    "toEntity": {
                      "type": "string"
                    },
                    "record": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "mappings": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "from",
                    "to",
                    "fromEntity",
                    "toEntity",
                    "record",
                    "mappings"
                  ]
                },
                "example": {
                  "from": "string",
                  "to": "string",
                  "fromEntity": "string",
                  "toEntity": "string",
                  "record": {},
                  "mappings": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/routing": {
      "get": {
        "operationId": "ConnectionRouting",
        "tags": [
          "connections"
        ],
        "summary": "Connection Routing",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "description": "Facet-safe field-level routing across connected systems (golden layer, 0 AI ops). ?systems=a,b,c.",
        "parameters": [
          {
            "name": "systems",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "systems": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "routes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "systems",
                    "routes"
                  ]
                },
                "example": {
                  "systems": [
                    "string"
                  ],
                  "routes": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/connections/suggestions/{vendorKey}": {
      "get": {
        "operationId": "ConnectionSuggestions",
        "tags": [
          "connections"
        ],
        "summary": "Connection Suggestions",
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "connections:read"
            ]
          }
        ],
        "description": "Deterministic \"connect next\" suggestions by canonical-concept overlap (golden layer, 0 AI ops). Optional ?connected=a,b.",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "vendor": {
                      "type": "string"
                    },
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "vendor",
                    "suggestions"
                  ]
                },
                "example": {
                  "vendor": "string",
                  "suggestions": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/contact": {
      "post": {
        "operationId": "SubmitContactForm",
        "tags": [
          "contact"
        ],
        "summary": "Submit Contact Form",
        "security": [],
        "description": "Public contact form submission. Rate limited to 5 per IP per hour. Stores in DB for CRM follow-up.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 320
                  },
                  "company": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "jobTitle": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "companySize": {
                    "type": "string",
                    "enum": [
                      "1-10",
                      "11-50",
                      "51-200",
                      "201-1000",
                      "1000+"
                    ]
                  },
                  "interest": {
                    "type": "string",
                    "enum": [
                      "pilot",
                      "cloud",
                      "enterprise",
                      "sovereign",
                      "exploring"
                    ]
                  },
                  "systems": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "systemsCount": {
                    "type": "string",
                    "enum": [
                      "1-5",
                      "6-20",
                      "21-50",
                      "50+"
                    ]
                  },
                  "message": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "name",
                  "email",
                  "company",
                  "message"
                ]
              },
              "example": {
                "name": "string",
                "email": "user@example.com",
                "company": "string",
                "jobTitle": "string",
                "companySize": "1-10",
                "interest": "pilot",
                "systems": "string",
                "systemsCount": "1-5",
                "message": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "message"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "message": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/field-authority-rules": {
      "get": {
        "operationId": "FieldAuthorityRulesList",
        "tags": [
          "golden_record"
        ],
        "summary": "Field Authority Rules List",
        "security": [
          {
            "ApiKeyAuth": [
              "field-authority-rules:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "field-authority-rules:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "field_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "field_name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "strategy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "strategy_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "priority_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "entity_type",
                "field_name",
                "strategy",
                "provider_key",
                "vendor_key",
                "service_key",
                "priority",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "strategy": {
                      "type": "string"
                    },
                    "provider_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "priority": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type",
                    "field_name",
                    "strategy"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "field_name": "string",
                  "strategy": "string",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "priority": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "FieldAuthorityRulesCreate",
        "tags": [
          "golden_record"
        ],
        "summary": "Field Authority Rules Create",
        "security": [
          {
            "ApiKeyAuth": [
              "field-authority-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "field-authority-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entity_type": {
                    "type": "string"
                  },
                  "field_name": {
                    "type": "string"
                  },
                  "strategy": {
                    "type": "string"
                  },
                  "provider_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "vendor_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "service_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "priority": {
                    "type": "integer"
                  }
                },
                "required": [
                  "entity_type",
                  "field_name",
                  "strategy"
                ]
              },
              "example": {
                "entity_type": "string",
                "field_name": "string",
                "strategy": "string",
                "provider_key": "string",
                "vendor_key": "string",
                "service_key": "string",
                "priority": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "strategy": {
                      "type": "string"
                    },
                    "provider_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "priority": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type",
                    "field_name",
                    "strategy"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "field_name": "string",
                  "strategy": "string",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "priority": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/field-authority-rules/{id}": {
      "delete": {
        "operationId": "FieldAuthorityRulesDelete",
        "tags": [
          "golden_record"
        ],
        "summary": "Field Authority Rules Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "field-authority-rules:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "field-authority-rules:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "FieldAuthorityRulesGet",
        "tags": [
          "golden_record"
        ],
        "summary": "Field Authority Rules Get",
        "security": [
          {
            "ApiKeyAuth": [
              "field-authority-rules:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "field-authority-rules:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "strategy": {
                      "type": "string"
                    },
                    "provider_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "priority": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type",
                    "field_name",
                    "strategy"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "field_name": "string",
                  "strategy": "string",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "priority": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "FieldAuthorityRulesUpdate",
        "tags": [
          "golden_record"
        ],
        "summary": "Field Authority Rules Update",
        "security": [
          {
            "ApiKeyAuth": [
              "field-authority-rules:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "field-authority-rules:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entity_type": {
                    "type": "string"
                  },
                  "field_name": {
                    "type": "string"
                  },
                  "strategy": {
                    "type": "string"
                  },
                  "provider_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "vendor_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "service_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "priority": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "entity_type": "string",
                "field_name": "string",
                "strategy": "string",
                "provider_key": "string",
                "vendor_key": "string",
                "service_key": "string",
                "priority": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "strategy": {
                      "type": "string"
                    },
                    "provider_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "priority": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "entity_type",
                    "field_name",
                    "strategy"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "field_name": "string",
                  "strategy": "string",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "priority": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/gamification/state": {
      "get": {
        "operationId": "ListGamificationState",
        "tags": [
          "gamification"
        ],
        "summary": "List Gamification State",
        "security": [
          {
            "ApiKeyAuth": [
              "gamification:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "gamification:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "state"
                  ]
                },
                "example": {
                  "state": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/golden-records/{entityClusterId}/fields": {
      "get": {
        "operationId": "GetGoldenRecordFields",
        "tags": [
          "unified_api"
        ],
        "summary": "Get Golden Record Fields",
        "security": [
          {
            "ApiKeyAuth": [
              "golden-records:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "golden-records:read"
            ]
          }
        ],
        "description": "Per-field view of one golden record: each field with its value, source provider, why (strategy + ruleApplied), confidence, contested flag, and read-time classification (l2Type / role / facet / sensitivity / category). category = role, or Uncategorised. Server-side gates sensitive values by the callers role grants (Explorer 3.5); a gated row has value null and redacted true.",
        "parameters": [
          {
            "name": "entityClusterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "fields"
                  ]
                },
                "example": {
                  "fields": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/golden-records/{entityClusterId}/sync": {
      "post": {
        "operationId": "SyncGoldenRecord",
        "tags": [
          "unified_api"
        ],
        "summary": "Sync Golden Record",
        "security": [
          {
            "ApiKeyAuth": [
              "golden-records:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "golden-records:write"
            ]
          }
        ],
        "description": "Reverse-sync this golden records values back to its contributing source systems. Optionally restrict to selected fields. Fields the caller cannot see (sensitivity-gated) are skipped. Async, dispatches one job per source.",
        "parameters": [
          {
            "name": "entityClusterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "example": {
                "fields": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "targets": {
                      "type": "integer"
                    },
                    "fields": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "status",
                    "targets",
                    "fields"
                  ]
                },
                "example": {
                  "status": "string",
                  "targets": 0,
                  "fields": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/golden-records/sync-batch": {
      "post": {
        "operationId": "SyncGoldenRecordsBatch",
        "tags": [
          "unified_api"
        ],
        "summary": "Sync Golden Records Batch",
        "security": [
          {
            "ApiKeyAuth": [
              "golden-records:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "golden-records:write"
            ]
          }
        ],
        "description": "Reverse-sync multiple golden records values back to their contributing source systems in one call. Fields the caller cannot see (sensitivity-gated) are skipped per record. Capped at 100 ids per request. A record with no matching row is reported as a per-item noop, not a batch failure.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entityClusterIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "entityClusterIds"
                ]
              },
              "example": {
                "entityClusterIds": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dispatched": {
                      "type": "integer"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "dispatched",
                    "results"
                  ]
                },
                "example": {
                  "dispatched": 0,
                  "results": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/initial-loads": {
      "get": {
        "operationId": "InitialLoadsList",
        "tags": [
          "operations"
        ],
        "summary": "Initial Loads List",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "approved_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "approved_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "records_loaded_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_loaded_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_total_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_total_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "storage_consumed_gb_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "storage_consumed_gb_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "load_started_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "load_started_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "load_completed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "load_completed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "load_duration_ms_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "load_duration_ms_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "connection_id",
                "approved_by",
                "approved_at",
                "status",
                "records_loaded",
                "records_total",
                "storage_consumed_gb",
                "load_started_at",
                "load_completed_at",
                "load_duration_ms",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_assessment": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "records_loaded": {
                      "type": "integer"
                    },
                    "records_total": {
                      "type": "integer",
                      "nullable": true
                    },
                    "storage_consumed_gb": {
                      "type": "number"
                    },
                    "load_started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_duration_ms": {
                      "type": "integer",
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "error_log": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_assessment"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_assessment": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "status": "string",
                  "records_loaded": 0,
                  "records_total": 0,
                  "storage_consumed_gb": 0,
                  "load_started_at": "string",
                  "load_completed_at": "string",
                  "load_duration_ms": 0,
                  "progress_log": {},
                  "error_log": {},
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "InitialLoadsCreate",
        "tags": [
          "operations"
        ],
        "summary": "Initial Loads Create",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "scope_assessment": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "approved_by": {
                    "type": "string",
                    "nullable": true
                  },
                  "approved_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "status": {
                    "type": "string"
                  },
                  "records_loaded": {
                    "type": "integer"
                  },
                  "records_total": {
                    "type": "integer",
                    "nullable": true
                  },
                  "storage_consumed_gb": {
                    "type": "number"
                  },
                  "load_started_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "load_completed_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "load_duration_ms": {
                    "type": "integer",
                    "nullable": true
                  },
                  "progress_log": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "error_log": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  }
                },
                "required": [
                  "connection_id",
                  "scope_assessment"
                ]
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "scope_assessment": {},
                "approved_by": "string",
                "approved_at": "string",
                "status": "string",
                "records_loaded": 0,
                "records_total": 0,
                "storage_consumed_gb": 0,
                "load_started_at": "string",
                "load_completed_at": "string",
                "load_duration_ms": 0,
                "progress_log": {},
                "error_log": {}
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_assessment": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "records_loaded": {
                      "type": "integer"
                    },
                    "records_total": {
                      "type": "integer",
                      "nullable": true
                    },
                    "storage_consumed_gb": {
                      "type": "number"
                    },
                    "load_started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_duration_ms": {
                      "type": "integer",
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "error_log": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_assessment"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_assessment": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "status": "string",
                  "records_loaded": 0,
                  "records_total": 0,
                  "storage_consumed_gb": 0,
                  "load_started_at": "string",
                  "load_completed_at": "string",
                  "load_duration_ms": 0,
                  "progress_log": {},
                  "error_log": {},
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/initial-loads/{id}": {
      "get": {
        "operationId": "InitialLoadsGet",
        "tags": [
          "operations"
        ],
        "summary": "Initial Loads Get",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_assessment": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "records_loaded": {
                      "type": "integer"
                    },
                    "records_total": {
                      "type": "integer",
                      "nullable": true
                    },
                    "storage_consumed_gb": {
                      "type": "number"
                    },
                    "load_started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_duration_ms": {
                      "type": "integer",
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "error_log": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_assessment"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_assessment": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "status": "string",
                  "records_loaded": 0,
                  "records_total": 0,
                  "storage_consumed_gb": 0,
                  "load_started_at": "string",
                  "load_completed_at": "string",
                  "load_duration_ms": 0,
                  "progress_log": {},
                  "error_log": {},
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "InitialLoadsUpdate",
        "tags": [
          "operations"
        ],
        "summary": "Initial Loads Update",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "scope_assessment": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "approved_by": {
                    "type": "string",
                    "nullable": true
                  },
                  "approved_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "status": {
                    "type": "string"
                  },
                  "records_loaded": {
                    "type": "integer"
                  },
                  "records_total": {
                    "type": "integer",
                    "nullable": true
                  },
                  "storage_consumed_gb": {
                    "type": "number"
                  },
                  "load_started_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "load_completed_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "load_duration_ms": {
                    "type": "integer",
                    "nullable": true
                  },
                  "progress_log": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "error_log": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  }
                }
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "scope_assessment": {},
                "approved_by": "string",
                "approved_at": "string",
                "status": "string",
                "records_loaded": 0,
                "records_total": 0,
                "storage_consumed_gb": 0,
                "load_started_at": "string",
                "load_completed_at": "string",
                "load_duration_ms": 0,
                "progress_log": {},
                "error_log": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_assessment": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "records_loaded": {
                      "type": "integer"
                    },
                    "records_total": {
                      "type": "integer",
                      "nullable": true
                    },
                    "storage_consumed_gb": {
                      "type": "number"
                    },
                    "load_started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "load_duration_ms": {
                      "type": "integer",
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "error_log": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_assessment"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_assessment": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "status": "string",
                  "records_loaded": 0,
                  "records_total": 0,
                  "storage_consumed_gb": 0,
                  "load_started_at": "string",
                  "load_completed_at": "string",
                  "load_duration_ms": 0,
                  "progress_log": {},
                  "error_log": {},
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/initial-loads/{id}/approve": {
      "post": {
        "operationId": "ApproveInitialLoad",
        "tags": [
          "operations"
        ],
        "summary": "Approve Initial Load",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/initial-loads/{id}/cancel": {
      "post": {
        "operationId": "CancelInitialLoad",
        "tags": [
          "operations"
        ],
        "summary": "Cancel Initial Load",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/initial-loads/{id}/pause": {
      "post": {
        "operationId": "PauseInitialLoad",
        "tags": [
          "operations"
        ],
        "summary": "Pause Initial Load",
        "security": [
          {
            "ApiKeyAuth": [
              "initial-loads:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "initial-loads:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/consolidation": {
      "get": {
        "operationId": "GetConsolidation",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Consolidation",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Identifies consolidation opportunities across overlapping providers from pre-computed intelligence.stack_analysis (call GetStackMap first to refresh it).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string"
                    },
                    "recommendations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "customerId",
                    "recommendations",
                    "generatedAt"
                  ]
                },
                "example": {
                  "customerId": "string",
                  "recommendations": [
                    {}
                  ],
                  "generatedAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/dark-data-report": {
      "get": {
        "operationId": "GetDarkDataReport",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Dark Data Report",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Generates archive/delete/re-activate recommendations for dark and orphaned records from pre-computed intelligence.data_utilisation_analysis.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string"
                    },
                    "recommendations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "customerId",
                    "recommendations",
                    "generatedAt"
                  ]
                },
                "example": {
                  "customerId": "string",
                  "recommendations": [
                    {}
                  ],
                  "generatedAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/dashboard": {
      "get": {
        "operationId": "GetIntelligenceDashboard",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Intelligence Dashboard",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "pipelineId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entityValueProfiles": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "partnerOpportunities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "usageMeters": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "entityValueProfiles",
                    "partnerOpportunities",
                    "usageMeters"
                  ]
                },
                "example": {
                  "entityValueProfiles": [
                    {}
                  ],
                  "partnerOpportunities": [
                    {}
                  ],
                  "usageMeters": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/data-model": {
      "get": {
        "operationId": "GetDataModel",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Data Model",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Extracts a unified entity-relationship data model from all connected provider manifests and inference field mappings.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "relationships": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "crossProviderMappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "partialFailures": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "entities",
                    "relationships",
                    "crossProviderMappings",
                    "partialFailures"
                  ]
                },
                "example": {
                  "entities": [
                    {}
                  ],
                  "relationships": [
                    {}
                  ],
                  "crossProviderMappings": [
                    {}
                  ],
                  "partialFailures": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/data-utilisation": {
      "get": {
        "operationId": "DataUtilisationAnalysisList",
        "tags": [
          "intelligence"
        ],
        "summary": "Data Utilisation Analysis List",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bucket",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bucket_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "record_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "record_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "percentage_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "percentage_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "computed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "computed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "provider_key",
                "vendor_key",
                "service_key",
                "entity_type",
                "bucket",
                "record_count",
                "percentage",
                "computed_at"
              ],
              "default": "computed_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "bucket": {
                      "type": "string"
                    },
                    "record_count": {
                      "type": "integer"
                    },
                    "percentage": {
                      "type": "number"
                    },
                    "computed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "bucket"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "bucket": "string",
                  "record_count": 0,
                  "percentage": 0,
                  "computed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/data-utilisation/{id}": {
      "get": {
        "operationId": "DataUtilisationAnalysisGet",
        "tags": [
          "intelligence"
        ],
        "summary": "Data Utilisation Analysis Get",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "bucket": {
                      "type": "string"
                    },
                    "record_count": {
                      "type": "integer"
                    },
                    "percentage": {
                      "type": "number"
                    },
                    "computed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "bucket"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "bucket": "string",
                  "record_count": 0,
                  "percentage": 0,
                  "computed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/enrichment-opportunities": {
      "get": {
        "operationId": "GetEnrichmentOpportunities",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Enrichment Opportunities",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Cross-references incomplete (null/empty) fields on one entity type against inference field mappings from other connected providers that could supply the missing data.",
        "parameters": [
          {
            "name": "entityType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string"
                    },
                    "entityType": {
                      "type": "string"
                    },
                    "opportunities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "customerId",
                    "entityType",
                    "opportunities"
                  ]
                },
                "example": {
                  "customerId": "string",
                  "entityType": "string",
                  "opportunities": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/migrations": {
      "get": {
        "operationId": "MigrationsList",
        "tags": [
          "migration"
        ],
        "summary": "Migrations List",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "source_provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "destination_provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "destination_provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "migration_completeness_score_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "migration_completeness_score_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "estimated_record_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "estimated_record_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "estimated_duration_seconds_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "estimated_duration_seconds_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "rollback_feasibility",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rollback_feasibility_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "records_processed_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_processed_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_failed_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_failed_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "started_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "started_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cancelled_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cancelled_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "failure_reason",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "failure_reason_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "source_provider_key",
                "destination_provider_key",
                "status",
                "migration_completeness_score",
                "estimated_record_count",
                "estimated_duration_seconds",
                "rollback_feasibility",
                "records_processed",
                "records_failed",
                "started_at",
                "completed_at",
                "cancelled_at",
                "failure_reason",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "source_provider_key": {
                      "type": "string"
                    },
                    "destination_provider_key": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "field_mappings": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "migration_completeness_score": {
                      "type": "number",
                      "nullable": true
                    },
                    "estimated_record_count": {
                      "type": "integer",
                      "nullable": true
                    },
                    "estimated_duration_seconds": {
                      "type": "integer",
                      "nullable": true
                    },
                    "rollback_feasibility": {
                      "type": "string",
                      "nullable": true
                    },
                    "records_processed": {
                      "type": "integer"
                    },
                    "records_failed": {
                      "type": "integer"
                    },
                    "verification_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "cancelled_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "failure_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "source_provider_key",
                    "destination_provider_key"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "source_provider_key": "string",
                  "destination_provider_key": "string",
                  "status": "string",
                  "field_mappings": {},
                  "migration_completeness_score": 0,
                  "estimated_record_count": 0,
                  "estimated_duration_seconds": 0,
                  "rollback_feasibility": "string",
                  "records_processed": 0,
                  "records_failed": 0,
                  "verification_report": {},
                  "started_at": "string",
                  "completed_at": "string",
                  "cancelled_at": "string",
                  "failure_reason": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/intelligence/migrations/{id}": {
      "get": {
        "operationId": "MigrationsGet",
        "tags": [
          "migration"
        ],
        "summary": "Migrations Get",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "source_provider_key": {
                      "type": "string"
                    },
                    "destination_provider_key": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "field_mappings": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "migration_completeness_score": {
                      "type": "number",
                      "nullable": true
                    },
                    "estimated_record_count": {
                      "type": "integer",
                      "nullable": true
                    },
                    "estimated_duration_seconds": {
                      "type": "integer",
                      "nullable": true
                    },
                    "rollback_feasibility": {
                      "type": "string",
                      "nullable": true
                    },
                    "records_processed": {
                      "type": "integer"
                    },
                    "records_failed": {
                      "type": "integer"
                    },
                    "verification_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "cancelled_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "failure_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "source_provider_key",
                    "destination_provider_key"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "source_provider_key": "string",
                  "destination_provider_key": "string",
                  "status": "string",
                  "field_mappings": {},
                  "migration_completeness_score": 0,
                  "estimated_record_count": 0,
                  "estimated_duration_seconds": 0,
                  "rollback_feasibility": "string",
                  "records_processed": 0,
                  "records_failed": 0,
                  "verification_report": {},
                  "started_at": "string",
                  "completed_at": "string",
                  "cancelled_at": "string",
                  "failure_reason": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/intelligence/migrations/{id}/cancel": {
      "post": {
        "operationId": "CancelMigration",
        "tags": [
          "migration"
        ],
        "summary": "Cancel Migration",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "description": "Cancels a running migration (valid from pending/backing_up/executing/verifying). Stops within one batch cycle (~10s).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "cancelled": {
                      "type": "boolean"
                    },
                    "migrationId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "cancelled",
                    "migrationId"
                  ]
                },
                "example": {
                  "cancelled": true,
                  "migrationId": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/intelligence/migrations/execute": {
      "post": {
        "operationId": "ExecuteMigration",
        "tags": [
          "migration"
        ],
        "summary": "Execute Migration",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "description": "Kick off a data migration between a source and destination provider. Mints a migration id, enqueues the long-running execution (backup → batch-write → verify) as an intelligence job, and returns immediately. Poll status / CancelMigration by the returned id.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceProviderKey": {
                    "type": "string"
                  },
                  "destinationProviderKey": {
                    "type": "string"
                  }
                },
                "required": [
                  "sourceProviderKey",
                  "destinationProviderKey"
                ]
              },
              "example": {
                "sourceProviderKey": "string",
                "destinationProviderKey": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "migrationId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "migrationId",
                    "status"
                  ]
                },
                "example": {
                  "migrationId": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/intelligence/migrations/preview": {
      "post": {
        "operationId": "PreviewMigration",
        "tags": [
          "migration"
        ],
        "summary": "Preview Migration",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "description": "Generates a field-mapping preview with gap analysis, completeness score, risk level, and rollback feasibility between a source and destination provider, using the inference layer.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceProviderKey": {
                    "type": "string"
                  },
                  "destinationProviderKey": {
                    "type": "string"
                  }
                },
                "required": [
                  "sourceProviderKey",
                  "destinationProviderKey"
                ]
              },
              "example": {
                "sourceProviderKey": "string",
                "destinationProviderKey": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sourceProvider": {
                      "type": "string"
                    },
                    "destinationProvider": {
                      "type": "string"
                    },
                    "fieldMappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "migrationCompletenessScore": {
                      "type": "number"
                    },
                    "riskLevel": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "estimatedRecordCount": {
                      "type": "integer"
                    },
                    "estimatedDurationSeconds": {
                      "type": "integer"
                    },
                    "rollbackFeasibility": {
                      "type": "string",
                      "enum": [
                        "full",
                        "partial",
                        "none"
                      ]
                    }
                  },
                  "required": [
                    "sourceProvider",
                    "destinationProvider",
                    "fieldMappings",
                    "migrationCompletenessScore",
                    "riskLevel",
                    "estimatedRecordCount",
                    "estimatedDurationSeconds",
                    "rollbackFeasibility"
                  ]
                },
                "example": {
                  "sourceProvider": "string",
                  "destinationProvider": "string",
                  "fieldMappings": [
                    {}
                  ],
                  "migrationCompletenessScore": 0,
                  "riskLevel": "low",
                  "estimatedRecordCount": 0,
                  "estimatedDurationSeconds": 0,
                  "rollbackFeasibility": "full"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/intelligence/partners": {
      "get": {
        "operationId": "ListPartnerOpportunities",
        "tags": [
          "intelligence"
        ],
        "summary": "List Partner Opportunities",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "partnerOpportunities": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "partnerOpportunities"
                  ]
                },
                "example": {
                  "partnerOpportunities": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/partners/{opportunityId}/connect": {
      "post": {
        "operationId": "ConnectPartner",
        "tags": [
          "intelligence"
        ],
        "summary": "Connect Partner",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "opportunityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "opportunity": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "opportunity"
                  ]
                },
                "example": {
                  "opportunity": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/schema-contracts": {
      "get": {
        "operationId": "SchemaContractsList",
        "tags": [
          "intelligence"
        ],
        "summary": "Schema Contracts List",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "drift_detected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "detected_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "detected_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "acknowledged_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "acknowledged_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "provider_key",
                "vendor_key",
                "service_key",
                "entity_type",
                "drift_detected",
                "detected_at",
                "acknowledged_at",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "expected_schema": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "actual_schema": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "drift_detected": {
                      "type": "boolean"
                    },
                    "drift_details": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "detected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "expected_schema"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "expected_schema": {},
                  "actual_schema": {},
                  "drift_detected": true,
                  "drift_details": {},
                  "detected_at": "string",
                  "acknowledged_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "SchemaContractsCreate",
        "tags": [
          "intelligence"
        ],
        "summary": "Schema Contracts Create",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider_key": {
                    "type": "string"
                  },
                  "vendor_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "service_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string"
                  },
                  "expected_schema": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "actual_schema": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "drift_detected": {
                    "type": "boolean"
                  },
                  "drift_details": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "detected_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "acknowledged_at": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "provider_key",
                  "entity_type",
                  "expected_schema"
                ]
              },
              "example": {
                "provider_key": "string",
                "vendor_key": "string",
                "service_key": "string",
                "entity_type": "string",
                "expected_schema": {},
                "actual_schema": {},
                "drift_detected": true,
                "drift_details": {},
                "detected_at": "string",
                "acknowledged_at": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "expected_schema": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "actual_schema": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "drift_detected": {
                      "type": "boolean"
                    },
                    "drift_details": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "detected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "expected_schema"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "expected_schema": {},
                  "actual_schema": {},
                  "drift_detected": true,
                  "drift_details": {},
                  "detected_at": "string",
                  "acknowledged_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/schema-contracts/{id}": {
      "delete": {
        "operationId": "SchemaContractsDelete",
        "tags": [
          "intelligence"
        ],
        "summary": "Schema Contracts Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "SchemaContractsGet",
        "tags": [
          "intelligence"
        ],
        "summary": "Schema Contracts Get",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "expected_schema": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "actual_schema": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "drift_detected": {
                      "type": "boolean"
                    },
                    "drift_details": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "detected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "expected_schema"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "expected_schema": {},
                  "actual_schema": {},
                  "drift_detected": true,
                  "drift_details": {},
                  "detected_at": "string",
                  "acknowledged_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "SchemaContractsUpdate",
        "tags": [
          "intelligence"
        ],
        "summary": "Schema Contracts Update",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider_key": {
                    "type": "string"
                  },
                  "vendor_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "service_key": {
                    "type": "string",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string"
                  },
                  "expected_schema": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "actual_schema": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "drift_detected": {
                    "type": "boolean"
                  },
                  "drift_details": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "detected_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "acknowledged_at": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "example": {
                "provider_key": "string",
                "vendor_key": "string",
                "service_key": "string",
                "entity_type": "string",
                "expected_schema": {},
                "actual_schema": {},
                "drift_detected": true,
                "drift_details": {},
                "detected_at": "string",
                "acknowledged_at": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "expected_schema": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "actual_schema": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "drift_detected": {
                      "type": "boolean"
                    },
                    "drift_details": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "detected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "acknowledged_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "entity_type",
                    "expected_schema"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "entity_type": "string",
                  "expected_schema": {},
                  "actual_schema": {},
                  "drift_detected": true,
                  "drift_details": {},
                  "detected_at": "string",
                  "acknowledged_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/schema-contracts/{id}/acknowledge-drift": {
      "post": {
        "operationId": "AcknowledgeDrift",
        "tags": [
          "intelligence"
        ],
        "summary": "Acknowledge Drift",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:write"
            ]
          }
        ],
        "description": "Acknowledges detected schema drift on a schema contract: copies actual_schema → expected_schema, clears drift state, records acknowledged_at.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "acknowledged": {
                      "type": "boolean"
                    },
                    "contractId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "acknowledged",
                    "contractId"
                  ]
                },
                "example": {
                  "acknowledged": true,
                  "contractId": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/stack-analysis": {
      "get": {
        "operationId": "StackAnalysisList",
        "tags": [
          "intelligence"
        ],
        "summary": "Stack Analysis List",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider_a",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_a_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_b",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_b_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "total_entity_types_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "total_entity_types_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "overlap_score_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "overlap_score_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "computed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "computed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "provider_a",
                "provider_b",
                "total_entity_types",
                "overlap_score",
                "computed_at"
              ],
              "default": "computed_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_a": {
                      "type": "string"
                    },
                    "provider_b": {
                      "type": "string"
                    },
                    "shared_entity_types": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "total_entity_types": {
                      "type": "integer"
                    },
                    "overlap_score": {
                      "type": "number"
                    },
                    "computed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_a",
                    "provider_b"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_a": "string",
                  "provider_b": "string",
                  "shared_entity_types": {},
                  "total_entity_types": 0,
                  "overlap_score": 0,
                  "computed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/stack-analysis/{id}": {
      "get": {
        "operationId": "StackAnalysisGet",
        "tags": [
          "intelligence"
        ],
        "summary": "Stack Analysis Get",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_a": {
                      "type": "string"
                    },
                    "provider_b": {
                      "type": "string"
                    },
                    "shared_entity_types": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "total_entity_types": {
                      "type": "integer"
                    },
                    "overlap_score": {
                      "type": "number"
                    },
                    "computed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_a",
                    "provider_b"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_a": "string",
                  "provider_b": "string",
                  "shared_entity_types": {},
                  "total_entity_types": 0,
                  "overlap_score": 0,
                  "computed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/stack-bloat-report": {
      "get": {
        "operationId": "GetStackBloatReport",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Stack Bloat Report",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Identifies provider pairs with high overlap scores (>0.7) from pre-computed intelligence.stack_analysis and recommends merge/decommission/review.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string"
                    },
                    "recommendations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "customerId",
                    "recommendations",
                    "generatedAt"
                  ]
                },
                "example": {
                  "customerId": "string",
                  "recommendations": [
                    {}
                  ],
                  "message": "string",
                  "generatedAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/stack-map": {
      "get": {
        "operationId": "GetStackMap",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Stack Map",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "description": "Computes provider overlap scores (Jaccard index) and shared entity types across the customer’s connected providers, persisting to intelligence.stack_analysis (read via GetStackAnalysis).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string"
                    },
                    "providerPairs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "computedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "customerId",
                    "providerPairs",
                    "computedAt"
                  ]
                },
                "example": {
                  "customerId": "string",
                  "providerPairs": [
                    {}
                  ],
                  "computedAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/usage": {
      "get": {
        "operationId": "GetUsageMeters",
        "tags": [
          "intelligence"
        ],
        "summary": "Get Usage Meters",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 365,
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "usage": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "usage"
                  ]
                },
                "example": {
                  "usage": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/intelligence/value-profiles": {
      "get": {
        "operationId": "ListEntityValueProfiles",
        "tags": [
          "intelligence"
        ],
        "summary": "List Entity Value Profiles",
        "security": [
          {
            "ApiKeyAuth": [
              "intelligence:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "intelligence:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "profiles": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "profiles"
                  ]
                },
                "example": {
                  "profiles": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/jobs/{id}": {
      "get": {
        "operationId": "GetJob",
        "tags": [
          "jobs"
        ],
        "summary": "Get Job",
        "security": [
          {
            "ApiKeyAuth": [
              "jobs:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "jobs:read"
            ]
          }
        ],
        "description": "Poll an async job (e.g. a pipeline sync) by the jobId returned from its 202 response. Live status/progress/result are read from the authoritative execution record.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "kind": {
                      "type": "string",
                      "description": "e.g. pipeline.sync"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "queued",
                        "running",
                        "succeeded",
                        "failed",
                        "cancelled"
                      ]
                    },
                    "progress": {
                      "type": "integer",
                      "nullable": true,
                      "description": "0–100 when known."
                    },
                    "result": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "error": {
                      "type": "string",
                      "nullable": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "kind",
                    "status",
                    "createdAt"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "kind": "string",
                  "status": "queued",
                  "progress": 0,
                  "result": {},
                  "error": "string",
                  "createdAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/library/categories": {
      "get": {
        "operationId": "ListCategories",
        "tags": [
          "library"
        ],
        "summary": "List Categories",
        "security": [
          {
            "ApiKeyAuth": [
              "library:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "categories": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "categories"
                  ]
                },
                "example": {
                  "categories": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/library/connectors": {
      "get": {
        "operationId": "SearchConnectors",
        "tags": [
          "library"
        ],
        "summary": "Search Connectors",
        "security": [
          {
            "ApiKeyAuth": [
              "library:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200,
              "default": ""
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectors": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "query": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "connectors",
                    "query"
                  ]
                },
                "example": {
                  "connectors": {},
                  "query": "string",
                  "category": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/library/connectors/{providerKey}": {
      "get": {
        "operationId": "GetConnectorManifest",
        "tags": [
          "library"
        ],
        "summary": "Get Connector Manifest",
        "security": [
          {
            "ApiKeyAuth": [
              "library:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "providerKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "manifest": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "manifest"
                  ]
                },
                "example": {
                  "manifest": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/library/connectors/upload": {
      "post": {
        "operationId": "Upload",
        "tags": [
          "library"
        ],
        "summary": "Upload",
        "security": [
          {
            "ApiKeyAuth": [
              "library:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:write"
            ]
          }
        ],
        "description": "Upload an API schema file to auto-generate a custom provider manifest.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": "string",
                    "description": "Base64-encoded file content."
                  },
                  "fileName": {
                    "type": "string"
                  },
                  "schemaTitle": {
                    "type": "string"
                  },
                  "connectionId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "content",
                  "fileName"
                ]
              },
              "example": {
                "content": "string",
                "fileName": "string",
                "schemaTitle": "string",
                "connectionId": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "manifestId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "providerKey": {
                      "type": "string"
                    },
                    "detectedFormat": {
                      "type": "string"
                    },
                    "fieldsRequiringReview": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "error": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true,
                  "manifestId": "00000000-0000-0000-0000-000000000000",
                  "providerKey": "string",
                  "detectedFormat": "string",
                  "fieldsRequiringReview": [
                    "string"
                  ],
                  "error": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/library/contributions": {
      "post": {
        "operationId": "SubmitConnectorContribution",
        "tags": [
          "library"
        ],
        "summary": "Submit Connector Contribution",
        "security": [
          {
            "ApiKeyAuth": [
              "library:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "displayName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "category": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "documentationUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "manifest": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "contributorName": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "contributorEmail": {
                    "type": "string",
                    "maxLength": 320
                  }
                }
              },
              "example": {
                "providerKey": "string",
                "displayName": "string",
                "category": "string",
                "documentationUrl": "string",
                "manifest": {},
                "notes": "string",
                "contributorName": "string",
                "contributorEmail": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "contributionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "success",
                    "contributionId",
                    "status",
                    "message"
                  ]
                },
                "example": {
                  "success": true,
                  "contributionId": "00000000-0000-0000-0000-000000000000",
                  "status": "string",
                  "message": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/library/contributions/{id}": {
      "get": {
        "operationId": "GetContributionStatus",
        "tags": [
          "library"
        ],
        "summary": "Get Contribution Status",
        "security": [
          {
            "ApiKeyAuth": [
              "library:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "library:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "providerKey": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "reviewNotes": {
                      "type": "string",
                      "nullable": true
                    },
                    "releaseVersion": {
                      "type": "string",
                      "nullable": true
                    },
                    "stagedAt": {
                      "type": "string"
                    },
                    "reviewedAt": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "providerKey",
                    "status",
                    "stagedAt"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "providerKey": "string",
                  "status": "string",
                  "reviewNotes": "string",
                  "releaseVersion": "string",
                  "stagedAt": "string",
                  "reviewedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/licence/upload": {
      "post": {
        "operationId": "UploadLicence",
        "tags": [
          "licence"
        ],
        "summary": "Upload Licence",
        "security": [
          {
            "ApiKeyAuth": [
              "licence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "licence:write"
            ]
          }
        ],
        "description": "Apply a signed licence file to the running deployment (owner only). Proxies to the licensing service.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "licenceJson": {
                    "type": "string"
                  },
                  "signature": {
                    "type": "string"
                  }
                },
                "required": [
                  "licenceJson",
                  "signature"
                ]
              },
              "example": {
                "licenceJson": "string",
                "signature": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "state": "string",
                  "expiresAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/licence/validate": {
      "post": {
        "operationId": "ValidateLicence",
        "tags": [
          "licence"
        ],
        "summary": "Validate Licence",
        "security": [
          {
            "ApiKeyAuth": [
              "licence:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "licence:write"
            ]
          }
        ],
        "description": "Dry-run validate a signed licence file without applying it (owner only). Proxies to the licensing service.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "licenceJson": {
                    "type": "string"
                  },
                  "signature": {
                    "type": "string"
                  }
                },
                "required": [
                  "licenceJson",
                  "signature"
                ]
              },
              "example": {
                "licenceJson": "string",
                "signature": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "valid": {
                      "type": "boolean"
                    },
                    "reason": {
                      "type": "string"
                    },
                    "wouldExpire": {
                      "type": "string"
                    },
                    "wouldState": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "valid": true,
                  "reason": "string",
                  "wouldExpire": "string",
                  "wouldState": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/licences/validate-deployment": {
      "post": {
        "operationId": "ValidateDeployment",
        "tags": [
          "licence"
        ],
        "summary": "Validate Deployment",
        "security": [],
        "description": "Authoritative licence-status check for a connected self-hosted deployment calling home: matches customer_id + licence_hash → returns active/grace/expired/revoked (+ revocation reason). The response is Ed25519-signed over {customerId,status,valid,nonce,issuedAt} (verified with the mounted public key) and echoes the request `nonce` so it cannot be spoofed or replayed. Air-gapped deployments never call this — they verify offline only.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customer_id": {
                    "type": "string"
                  },
                  "licence_hash": {
                    "type": "string"
                  },
                  "nonce": {
                    "type": "string",
                    "description": "Fresh per-request nonce, echoed into the signed response to bind it to this poll (replay protection)."
                  }
                },
                "required": [
                  "customer_id",
                  "licence_hash",
                  "nonce"
                ]
              },
              "example": {
                "customer_id": "string",
                "licence_hash": "string",
                "nonce": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "valid": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "nonce": {
                      "type": "string",
                      "description": "Echo of the request nonce (inside the signed payload)."
                    },
                    "issuedAt": {
                      "type": "string",
                      "description": "Server sign time (inside the signed payload)."
                    },
                    "signature": {
                      "type": "string",
                      "description": "Base64 Ed25519 signature over {customerId,status,valid,nonce,issuedAt}."
                    },
                    "expiresAt": {
                      "type": "string"
                    },
                    "gracePeriodEnd": {
                      "type": "string"
                    },
                    "revokedReason": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "valid",
                    "status",
                    "nonce",
                    "issuedAt",
                    "signature"
                  ]
                },
                "example": {
                  "valid": true,
                  "status": "string",
                  "nonce": "string",
                  "issuedAt": "string",
                  "signature": "string",
                  "expiresAt": "string",
                  "gracePeriodEnd": "string",
                  "revokedReason": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/mappings/{id}": {
      "get": {
        "operationId": "GetMapping",
        "tags": [
          "mappings"
        ],
        "summary": "Get Mapping",
        "security": [
          {
            "ApiKeyAuth": [
              "mappings:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "mappings:read"
            ]
          }
        ],
        "description": "Serve a persisted cross-system MappingManifest (entity + field mappings) to the mapping-review UI. Carries the open pair signal: entityRelationship (L15) per entity pair and suggestedTransform (L17) per field mapping.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "manifest": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "manifest"
                  ]
                },
                "example": {
                  "manifest": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/mappings/{id}/field-mapping": {
      "patch": {
        "operationId": "UpdateFieldMapping",
        "tags": [
          "mappings"
        ],
        "summary": "Update Field Mapping",
        "security": [
          {
            "ApiKeyAuth": [
              "mappings:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "mappings:write"
            ]
          }
        ],
        "description": "Customer override of one field mapping in a MappingManifest — change the executable transform / authority, or approve/reject. Read-modify-writes the manifest; flags customerModified when a value changes.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fieldMappingId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "transform": {
                    "type": "string"
                  },
                  "authority": {
                    "type": "string"
                  },
                  "approved": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "fieldMappingId"
                ]
              },
              "example": {
                "fieldMappingId": "00000000-0000-0000-0000-000000000000",
                "transform": "string",
                "authority": "string",
                "approved": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "manifest": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "manifest"
                  ]
                },
                "example": {
                  "manifest": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/monitoring/health": {
      "get": {
        "operationId": "GetConnectionHealth",
        "tags": [
          "monitoring"
        ],
        "summary": "Get Connection Health",
        "security": [
          {
            "ApiKeyAuth": [
              "monitoring:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "monitoring:read"
            ]
          }
        ],
        "description": "Per-connection health scores (0–100, weighted error/latency/volume/uptime factors over the last 24h of pipeline events).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/monitoring/summary": {
      "get": {
        "operationId": "GetMonitoringSummary",
        "tags": [
          "monitoring"
        ],
        "summary": "Get Monitoring Summary",
        "security": [
          {
            "ApiKeyAuth": [
              "monitoring:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "monitoring:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionsMonitored": {
                      "type": "integer"
                    },
                    "healthScoreAvg": {
                      "type": "number",
                      "nullable": true
                    },
                    "alertsFiring24h": {
                      "type": "integer"
                    },
                    "syncsCompleted24h": {
                      "type": "integer"
                    },
                    "syncsFailed24h": {
                      "type": "integer"
                    },
                    "syncSuccessRate24h": {
                      "type": "number",
                      "nullable": true
                    },
                    "errorEvents24h": {
                      "type": "integer"
                    },
                    "recommendations": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "connectionsMonitored",
                    "alertsFiring24h",
                    "syncsCompleted24h",
                    "syncsFailed24h",
                    "errorEvents24h",
                    "recommendations"
                  ]
                },
                "example": {
                  "connectionsMonitored": 0,
                  "healthScoreAvg": 0,
                  "alertsFiring24h": 0,
                  "syncsCompleted24h": 0,
                  "syncsFailed24h": 0,
                  "syncSuccessRate24h": 0,
                  "errorEvents24h": 0,
                  "recommendations": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/notifications": {
      "get": {
        "operationId": "ListNotifications",
        "tags": [
          "notifications"
        ],
        "summary": "List Notifications",
        "security": [
          {
            "ApiKeyAuth": [
              "notifications:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "notifications:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifications": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "pagination": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "notifications",
                    "pagination"
                  ]
                },
                "example": {
                  "notifications": {},
                  "pagination": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/notifications/{id}/read": {
      "post": {
        "operationId": "MarkNotificationRead",
        "tags": [
          "notifications"
        ],
        "summary": "Mark Notification Read",
        "security": [
          {
            "ApiKeyAuth": [
              "notifications:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "notifications:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/notifications/read-all": {
      "post": {
        "operationId": "MarkAllNotificationsRead",
        "tags": [
          "notifications"
        ],
        "summary": "Mark All Notifications Read",
        "security": [
          {
            "ApiKeyAuth": [
              "notifications:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "notifications:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "markedCount": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "markedCount"
                  ]
                },
                "example": {
                  "markedCount": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/notifications/unread-count": {
      "get": {
        "operationId": "GetUnreadNotificationCount",
        "tags": [
          "notifications"
        ],
        "summary": "Get Unread Notification Count",
        "security": [
          {
            "ApiKeyAuth": [
              "notifications:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "notifications:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "unreadCount": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "unreadCount"
                  ]
                },
                "example": {
                  "unreadCount": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/oauth/initiate": {
      "post": {
        "operationId": "OAuthInitiate",
        "tags": [
          "oauth"
        ],
        "summary": "OAuth Initiate",
        "security": [
          {
            "ApiKeyAuth": [
              "oauth:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "oauth:write"
            ]
          }
        ],
        "description": "Begin an OAuth 2.0 authorization-code flow for a connector. Builds the provider authorize URL from its ProviderManifest oauth2 config (authorize endpoint, client_id from env, requested scopes) and mints a single-use CSRF `state` token (persisted in Redis, customer+connection-bound, verified on callback). Returns { authorizeUrl, state } — the UI redirects the user to authorizeUrl.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerKey": {
                    "type": "string",
                    "description": "Connector-library provider key whose oauth2 config drives the authorize URL."
                  },
                  "connectionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The connection being authorized — bound into the state token."
                  },
                  "redirectUri": {
                    "type": "string",
                    "format": "uri",
                    "description": "The callback URL; recorded in state and echoed back as redirect_uri."
                  },
                  "scopes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Optional subset of the provider scopes to request (defaults to the manifest scopes)."
                  }
                },
                "required": [
                  "providerKey",
                  "connectionId",
                  "redirectUri"
                ]
              },
              "example": {
                "providerKey": "string",
                "connectionId": "00000000-0000-0000-0000-000000000000",
                "redirectUri": "https://example.com",
                "scopes": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "authorizeUrl": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "authorizeUrl",
                    "state"
                  ]
                },
                "example": {
                  "authorizeUrl": "string",
                  "state": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/oauth/token": {
      "post": {
        "operationId": "OAuthToken",
        "tags": [
          "oauth"
        ],
        "summary": "OAuth Token",
        "security": [],
        "description": "OAuth 2.0 client-credentials token endpoint. Exchange an API key (client_id = key prefix, client_secret = the key) for a short-lived bearer access token carrying that key's scopes. Use the token as `Authorization: Bearer <access_token>`; refresh on expiry. The scopes are the same catalogue as API keys (see x-api-scopes).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "grant_type": {
                    "type": "string",
                    "enum": [
                      "client_credentials"
                    ]
                  },
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string",
                    "description": "Optional space-separated subset of the client's scopes to down-scope the token."
                  }
                },
                "required": [
                  "grant_type",
                  "client_id",
                  "client_secret"
                ]
              },
              "example": {
                "grant_type": "client_credentials",
                "client_id": "string",
                "client_secret": "string",
                "scope": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string"
                    },
                    "token_type": {
                      "type": "string",
                      "description": "Bearer"
                    },
                    "expires_in": {
                      "type": "integer",
                      "description": "Seconds until expiry."
                    },
                    "scope": {
                      "type": "string",
                      "description": "Space-separated granted scopes."
                    }
                  },
                  "required": [
                    "access_token",
                    "token_type",
                    "expires_in",
                    "scope"
                  ]
                },
                "example": {
                  "access_token": "string",
                  "token_type": "string",
                  "expires_in": 0,
                  "scope": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/onboarding": {
      "get": {
        "operationId": "GetOnboarding",
        "tags": [
          "onboarding"
        ],
        "summary": "Get Onboarding",
        "security": [
          {
            "ApiKeyAuth": [
              "onboarding:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "onboarding:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "active": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "step": {
                      "type": "string",
                      "nullable": true
                    },
                    "phase1ConnectionId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "phase2ConnectionId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "archivalEnabled": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "syncTierConfig": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "createdAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "completedAt": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "active",
                    "customerId"
                  ]
                },
                "example": {
                  "active": true,
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customerId": "00000000-0000-0000-0000-000000000000",
                  "step": "string",
                  "phase1ConnectionId": "00000000-0000-0000-0000-000000000000",
                  "phase2ConnectionId": "00000000-0000-0000-0000-000000000000",
                  "archivalEnabled": true,
                  "syncTierConfig": {},
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "createdAt": "string",
                  "completedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/onboarding/archival-analysis": {
      "get": {
        "operationId": "GetOnboardingArchivalAnalysis",
        "tags": [
          "onboarding"
        ],
        "summary": "Get Onboarding Archival Analysis",
        "security": [
          {
            "ApiKeyAuth": [
              "onboarding:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "onboarding:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "eligibleEntities": {
                      "type": "integer"
                    },
                    "estimatedRecords": {
                      "type": "integer",
                      "nullable": true
                    },
                    "estimatedMonthlySaving": {
                      "type": "number",
                      "nullable": true
                    },
                    "isEstimate": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "connectionId",
                    "eligibleEntities",
                    "isEstimate"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "eligibleEntities": 0,
                  "estimatedRecords": 0,
                  "estimatedMonthlySaving": 0,
                  "isEstimate": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/onboarding/entity-sync-tiers": {
      "get": {
        "operationId": "GetOnboardingEntitySyncTiers",
        "tags": [
          "onboarding"
        ],
        "summary": "Get Onboarding Entity Sync Tiers",
        "security": [
          {
            "ApiKeyAuth": [
              "onboarding:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "onboarding:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "connectionId",
                    "suggestions"
                  ]
                },
                "example": {
                  "connectionId": "00000000-0000-0000-0000-000000000000",
                  "suggestions": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/onboarding/start": {
      "post": {
        "operationId": "StartOnboarding",
        "tags": [
          "onboarding"
        ],
        "summary": "Start Onboarding",
        "security": [
          {
            "ApiKeyAuth": [
              "onboarding:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "onboarding:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "step": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "customerId",
                    "step"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customerId": "00000000-0000-0000-0000-000000000000",
                  "step": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/onboarding/step": {
      "post": {
        "operationId": "AdvanceOnboarding",
        "tags": [
          "onboarding"
        ],
        "summary": "Advance Onboarding",
        "security": [
          {
            "ApiKeyAuth": [
              "onboarding:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "onboarding:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phase1ConnectionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "phase2ConnectionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "archivalEnabled": {
                    "type": "boolean"
                  },
                  "syncTierConfig": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "pipelineId": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "example": {
                "phase1ConnectionId": "00000000-0000-0000-0000-000000000000",
                "phase2ConnectionId": "00000000-0000-0000-0000-000000000000",
                "archivalEnabled": true,
                "syncTierConfig": {},
                "pipelineId": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "step": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "step"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "step": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/openapi.json": {
      "get": {
        "operationId": "GetOpenApiSpec",
        "tags": [
          "meta"
        ],
        "summary": "Get Open Api Spec",
        "security": [],
        "description": "The customer-facing OpenAPI 3.0.3 document for this API — the same spec published at inferrex.com/openapi.json. Credential-free discovery surface: an agent can read the entire contract (paths, params, responses, examples, auth schemes) with no key. Generated from the route manifests by codegen, so it never drifts from the server.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/operation-scopes": {
      "get": {
        "operationId": "OperationScopesList",
        "tags": [
          "core"
        ],
        "summary": "Operation Scopes List",
        "security": [
          {
            "ApiKeyAuth": [
              "operation-scopes:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "operation-scopes:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "scope_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "included",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "field_exclusions_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_range_from_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "date_range_from_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "date_range_to_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "date_range_to_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "schedule_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schedule_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schedule_cron",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schedule_cron_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schedule_timezone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schedule_timezone_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "max_duration_minutes_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "max_duration_minutes_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "connection_id",
                "scope_type",
                "entity_type",
                "included",
                "date_range_from",
                "date_range_to",
                "schedule_type",
                "schedule_cron",
                "schedule_timezone",
                "max_duration_minutes",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_type": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "included": {
                      "type": "boolean"
                    },
                    "field_exclusions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "filter_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "date_range_from": {
                      "type": "string",
                      "nullable": true
                    },
                    "date_range_to": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_cron": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_timezone": {
                      "type": "string"
                    },
                    "maintenance_window": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "max_duration_minutes": {
                      "type": "integer",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_type",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_type": "string",
                  "entity_type": "string",
                  "included": true,
                  "field_exclusions": [
                    "string"
                  ],
                  "filter_conditions": {},
                  "date_range_from": "string",
                  "date_range_to": "string",
                  "schedule_type": "string",
                  "schedule_cron": "string",
                  "schedule_timezone": "string",
                  "maintenance_window": {},
                  "max_duration_minutes": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "OperationScopesCreate",
        "tags": [
          "core"
        ],
        "summary": "Operation Scopes Create",
        "security": [
          {
            "ApiKeyAuth": [
              "operation-scopes:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "operation-scopes:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "scope_type": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string"
                  },
                  "included": {
                    "type": "boolean"
                  },
                  "field_exclusions": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "filter_conditions": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "date_range_from": {
                    "type": "string",
                    "nullable": true
                  },
                  "date_range_to": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_cron": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_timezone": {
                    "type": "string"
                  },
                  "maintenance_window": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "max_duration_minutes": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "connection_id",
                  "scope_type",
                  "entity_type"
                ]
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "scope_type": "string",
                "entity_type": "string",
                "included": true,
                "field_exclusions": [
                  "string"
                ],
                "filter_conditions": {},
                "date_range_from": "string",
                "date_range_to": "string",
                "schedule_type": "string",
                "schedule_cron": "string",
                "schedule_timezone": "string",
                "maintenance_window": {},
                "max_duration_minutes": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_type": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "included": {
                      "type": "boolean"
                    },
                    "field_exclusions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "filter_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "date_range_from": {
                      "type": "string",
                      "nullable": true
                    },
                    "date_range_to": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_cron": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_timezone": {
                      "type": "string"
                    },
                    "maintenance_window": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "max_duration_minutes": {
                      "type": "integer",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_type",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_type": "string",
                  "entity_type": "string",
                  "included": true,
                  "field_exclusions": [
                    "string"
                  ],
                  "filter_conditions": {},
                  "date_range_from": "string",
                  "date_range_to": "string",
                  "schedule_type": "string",
                  "schedule_cron": "string",
                  "schedule_timezone": "string",
                  "maintenance_window": {},
                  "max_duration_minutes": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/operation-scopes/{id}": {
      "delete": {
        "operationId": "OperationScopesDelete",
        "tags": [
          "core"
        ],
        "summary": "Operation Scopes Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "operation-scopes:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "operation-scopes:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "OperationScopesGet",
        "tags": [
          "core"
        ],
        "summary": "Operation Scopes Get",
        "security": [
          {
            "ApiKeyAuth": [
              "operation-scopes:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "operation-scopes:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_type": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "included": {
                      "type": "boolean"
                    },
                    "field_exclusions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "filter_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "date_range_from": {
                      "type": "string",
                      "nullable": true
                    },
                    "date_range_to": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_cron": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_timezone": {
                      "type": "string"
                    },
                    "maintenance_window": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "max_duration_minutes": {
                      "type": "integer",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_type",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_type": "string",
                  "entity_type": "string",
                  "included": true,
                  "field_exclusions": [
                    "string"
                  ],
                  "filter_conditions": {},
                  "date_range_from": "string",
                  "date_range_to": "string",
                  "schedule_type": "string",
                  "schedule_cron": "string",
                  "schedule_timezone": "string",
                  "maintenance_window": {},
                  "max_duration_minutes": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "OperationScopesUpdate",
        "tags": [
          "core"
        ],
        "summary": "Operation Scopes Update",
        "security": [
          {
            "ApiKeyAuth": [
              "operation-scopes:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "operation-scopes:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "scope_type": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string"
                  },
                  "included": {
                    "type": "boolean"
                  },
                  "field_exclusions": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "filter_conditions": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "date_range_from": {
                    "type": "string",
                    "nullable": true
                  },
                  "date_range_to": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_cron": {
                    "type": "string",
                    "nullable": true
                  },
                  "schedule_timezone": {
                    "type": "string"
                  },
                  "maintenance_window": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "max_duration_minutes": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "scope_type": "string",
                "entity_type": "string",
                "included": true,
                "field_exclusions": [
                  "string"
                ],
                "filter_conditions": {},
                "date_range_from": "string",
                "date_range_to": "string",
                "schedule_type": "string",
                "schedule_cron": "string",
                "schedule_timezone": "string",
                "maintenance_window": {},
                "max_duration_minutes": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "scope_type": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string"
                    },
                    "included": {
                      "type": "boolean"
                    },
                    "field_exclusions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "filter_conditions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "date_range_from": {
                      "type": "string",
                      "nullable": true
                    },
                    "date_range_to": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_cron": {
                      "type": "string",
                      "nullable": true
                    },
                    "schedule_timezone": {
                      "type": "string"
                    },
                    "maintenance_window": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "max_duration_minutes": {
                      "type": "integer",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "connection_id",
                    "scope_type",
                    "entity_type"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "scope_type": "string",
                  "entity_type": "string",
                  "included": true,
                  "field_exclusions": [
                    "string"
                  ],
                  "filter_conditions": {},
                  "date_range_from": "string",
                  "date_range_to": "string",
                  "schedule_type": "string",
                  "schedule_cron": "string",
                  "schedule_timezone": "string",
                  "maintenance_window": {},
                  "max_duration_minutes": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/parallel-run-discrepancies": {
      "get": {
        "operationId": "ParallelRunDiscrepanciesList",
        "tags": [
          "data_protection"
        ],
        "summary": "Parallel Run Discrepancies List",
        "security": [
          {
            "ApiKeyAuth": [
              "parallel-run-discrepancies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "parallel-run-discrepancies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "restoration_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "record_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "record_id_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "field_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "field_name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_provider",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_provider_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detected_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "detected_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "restoration_id",
                "customer_id",
                "record_id",
                "field_name",
                "source_provider",
                "detected_at"
              ],
              "default": "detected_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "restoration_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "record_id": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "restored_value": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "current_value": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "source_provider": {
                      "type": "string"
                    },
                    "detected_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "restoration_id",
                    "customer_id",
                    "record_id",
                    "field_name",
                    "source_provider"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "restoration_id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "record_id": "string",
                  "field_name": "string",
                  "restored_value": {},
                  "current_value": {},
                  "source_provider": "string",
                  "detected_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/parallel-run-discrepancies/{id}": {
      "get": {
        "operationId": "ParallelRunDiscrepanciesGet",
        "tags": [
          "data_protection"
        ],
        "summary": "Parallel Run Discrepancies Get",
        "security": [
          {
            "ApiKeyAuth": [
              "parallel-run-discrepancies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "parallel-run-discrepancies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "restoration_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "record_id": {
                      "type": "string"
                    },
                    "field_name": {
                      "type": "string"
                    },
                    "restored_value": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "current_value": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "source_provider": {
                      "type": "string"
                    },
                    "detected_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "restoration_id",
                    "customer_id",
                    "record_id",
                    "field_name",
                    "source_provider"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "restoration_id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "record_id": "string",
                  "field_name": "string",
                  "restored_value": {},
                  "current_value": {},
                  "source_provider": "string",
                  "detected_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipeline-events": {
      "get": {
        "operationId": "PipelineEventsList",
        "tags": [
          "monitoring"
        ],
        "summary": "Pipeline Events List",
        "security": [
          {
            "ApiKeyAuth": [
              "pipeline-events:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipeline-events:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pipeline_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "event_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "title_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_service",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_service_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "observed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "observed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "description": "Page size.",
              "default": 50
            },
            "description": "Page size."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Opaque cursor from a previous response's nextCursor; omit for the first page."
            },
            "description": "Opaque cursor from a previous response's nextCursor; omit for the first page."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "pipeline_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "event_type": {
                      "type": "string"
                    },
                    "severity": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "detail": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "source_service": {
                      "type": "string"
                    },
                    "observed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "event_type",
                    "title",
                    "source_service"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "pipeline_id": "00000000-0000-0000-0000-000000000000",
                  "event_type": "string",
                  "severity": "string",
                  "title": "string",
                  "detail": {},
                  "source_service": "string",
                  "observed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipeline-events/{id}": {
      "get": {
        "operationId": "PipelineEventsGet",
        "tags": [
          "monitoring"
        ],
        "summary": "Pipeline Events Get",
        "security": [
          {
            "ApiKeyAuth": [
              "pipeline-events:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipeline-events:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "pipeline_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "event_type": {
                      "type": "string"
                    },
                    "severity": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "detail": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "source_service": {
                      "type": "string"
                    },
                    "observed_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "event_type",
                    "title",
                    "source_service"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "pipeline_id": "00000000-0000-0000-0000-000000000000",
                  "event_type": "string",
                  "severity": "string",
                  "title": "string",
                  "detail": {},
                  "source_service": "string",
                  "observed_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines": {
      "get": {
        "operationId": "ListPipelines",
        "tags": [
          "pipelines"
        ],
        "summary": "List Pipelines",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelines": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "pipelines"
                  ]
                },
                "example": {
                  "pipelines": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "CreatePipeline",
        "tags": [
          "pipelines"
        ],
        "summary": "Create Pipeline",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string"
                  },
                  "sourceConnectionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "targetConnectionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "mappingManifestId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "name",
                  "sourceConnectionId",
                  "targetConnectionId"
                ]
              },
              "example": {
                "name": "string",
                "description": "string",
                "sourceConnectionId": "00000000-0000-0000-0000-000000000000",
                "targetConnectionId": "00000000-0000-0000-0000-000000000000",
                "mappingManifestId": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "status"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}": {
      "get": {
        "operationId": "GetPipeline",
        "tags": [
          "pipelines"
        ],
        "summary": "Get Pipeline",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipeline": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "pipeline"
                  ]
                },
                "example": {
                  "pipeline": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/activate": {
      "post": {
        "operationId": "ActivatePipeline",
        "tags": [
          "pipelines"
        ],
        "summary": "Activate Pipeline",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "description": "Activate a pipeline and enqueue its initial sync. Returns a pollable jobId — poll GET /v1/jobs/:id for status (gap F15).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string",
                      "description": "queued"
                    },
                    "jobId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Poll GET /v1/jobs/:id."
                    },
                    "initialSyncJobId": {
                      "type": "string",
                      "description": "Deprecated alias of jobId."
                    }
                  },
                  "required": [
                    "pipelineId",
                    "status",
                    "jobId",
                    "initialSyncJobId"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "status": "string",
                  "jobId": "00000000-0000-0000-0000-000000000000",
                  "initialSyncJobId": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/anomalies": {
      "get": {
        "operationId": "GetAnomalies",
        "tags": [
          "pipelines"
        ],
        "summary": "Get Anomalies",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "description": "Data-quality anomalies detected for a pipeline (type/range/enum/completeness/distribution/frequency). Customer-scoped read; powers the pipeline detail \"Anomalies\" panel.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "anomalies": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "pipelineId",
                    "anomalies"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "anomalies": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/dry-run": {
      "post": {
        "operationId": "DryRunPipeline",
        "tags": [
          "pipelines"
        ],
        "summary": "Dry Run Pipeline",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "description": "Enqueue a dry-run. Returns a pollable jobId — poll GET /v1/jobs/:id for status (gap F15).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "jobId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Poll GET /v1/jobs/:id."
                    },
                    "dryRunJobId": {
                      "type": "string",
                      "description": "Deprecated alias of jobId."
                    },
                    "status": {
                      "type": "string",
                      "description": "queued"
                    }
                  },
                  "required": [
                    "pipelineId",
                    "jobId",
                    "dryRunJobId",
                    "status"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "jobId": "00000000-0000-0000-0000-000000000000",
                  "dryRunJobId": "string",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/history": {
      "get": {
        "operationId": "GetSyncHistory",
        "tags": [
          "pipelines"
        ],
        "summary": "Get Sync History",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "history": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "pipelineId",
                    "history"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "history": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/mappings": {
      "get": {
        "operationId": "ListPipelineMappings",
        "tags": [
          "pipelines"
        ],
        "summary": "List Pipeline Mappings",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "description": "The field mappings for a pipeline, flattened from its MappingManifest. Read-only; powers the pipeline detail \"Mappings\" tab (NAV-UX v2 D3 follow-up).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "mappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "pipelineId",
                    "mappings"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "mappings": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/parallel-run": {
      "post": {
        "operationId": "StartParallelRun",
        "tags": [
          "pipelines"
        ],
        "summary": "Start Parallel Run",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "description": "Start a parallel run comparing a pipeline against a candidate provider version. Async: version-manager runs the field-level comparator and owns the versioning.parallel_runs write; this returns a pollable parallelRunId. Watch version.parallel-run.started/completed over the event stream.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "candidateVersion": {
                    "type": "string",
                    "description": "The provider API version to compare the pipeline against."
                  }
                },
                "required": [
                  "candidateVersion"
                ]
              },
              "example": {
                "candidateVersion": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "parallelRunId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifies this run (versioning.parallel_runs.id)."
                    },
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "candidateVersion": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "description": "queued"
                    }
                  },
                  "required": [
                    "parallelRunId",
                    "pipelineId",
                    "candidateVersion",
                    "status"
                  ]
                },
                "example": {
                  "parallelRunId": "00000000-0000-0000-0000-000000000000",
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "candidateVersion": "string",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/pause": {
      "post": {
        "operationId": "PausePipeline",
        "tags": [
          "pipelines"
        ],
        "summary": "Pause Pipeline",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "description": "Pause an active pipeline. Scheduled syncs stop until it is resumed (POST /v1/pipelines/:id/activate).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string",
                      "description": "paused"
                    }
                  },
                  "required": [
                    "pipelineId",
                    "status"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/suggestions": {
      "get": {
        "operationId": "ListSuggestions",
        "tags": [
          "pipelines"
        ],
        "summary": "List Suggestions",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "pipelineId",
                    "suggestions"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "suggestions": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/suggestions/{suggestionId}/accept": {
      "post": {
        "operationId": "AcceptSuggestion",
        "tags": [
          "pipelines"
        ],
        "summary": "Accept Suggestion",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "suggestionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "suggestion": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "suggestion"
                  ]
                },
                "example": {
                  "suggestion": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/suggestions/{suggestionId}/dismiss": {
      "post": {
        "operationId": "DismissSuggestion",
        "tags": [
          "pipelines"
        ],
        "summary": "Dismiss Suggestion",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "suggestionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "status"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/pipelines/{id}/sync": {
      "post": {
        "operationId": "TriggerSync",
        "tags": [
          "pipelines"
        ],
        "summary": "Trigger Sync",
        "security": [
          {
            "ApiKeyAuth": [
              "pipelines:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "pipelines:write"
            ]
          }
        ],
        "description": "Enqueue a sync run. Returns a pollable jobId — poll GET /v1/jobs/:id for status (gap F15).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "syncType": {
                    "type": "string",
                    "enum": [
                      "initial",
                      "incremental",
                      "full"
                    ],
                    "default": "incremental"
                  }
                }
              },
              "example": {
                "syncType": "initial"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pipelineId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "jobId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Poll GET /v1/jobs/:id."
                    },
                    "syncJobId": {
                      "type": "string",
                      "description": "Deprecated alias of jobId."
                    },
                    "status": {
                      "type": "string",
                      "description": "queued"
                    },
                    "syncType": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "pipelineId",
                    "jobId",
                    "syncJobId",
                    "status",
                    "syncType"
                  ]
                },
                "example": {
                  "pipelineId": "00000000-0000-0000-0000-000000000000",
                  "jobId": "00000000-0000-0000-0000-000000000000",
                  "syncJobId": "string",
                  "status": "string",
                  "syncType": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/platform-config": {
      "get": {
        "operationId": "GetPlatformConfig",
        "tags": [
          "platform_config"
        ],
        "summary": "Get Platform Config",
        "security": [
          {
            "ApiKeyAuth": [
              "platform-config:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "platform-config:read"
            ]
          }
        ],
        "description": "Resolved platform tunables for the authenticated tenant (customer override → platform-global override → code default), plus the catalogue metadata for the customer-adjustable knobs. Operational/display knobs only (thresholds, windows, intervals, precision) — pricing + tier limits come from /v1/pricing (Stripe).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "values": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "tunables": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "values",
                    "tunables"
                  ]
                },
                "example": {
                  "values": {},
                  "tunables": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "SetPlatformConfig",
        "tags": [
          "platform_config"
        ],
        "summary": "Set Platform Config",
        "security": [
          {
            "ApiKeyAuth": [
              "platform-config:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "platform-config:write"
            ]
          }
        ],
        "description": "Set (or clear) a tenant-scoped override for a customer-adjustable tunable. Only `customer`/`both`-scoped keys are writable here, and the value must fall within the tunable's declared bounds. Pass value:null to clear the override and fall back to the platform default.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1
                  },
                  "value": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "required": [
                  "key"
                ]
              },
              "example": {
                "key": "string",
                "value": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string"
                    },
                    "value": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "required": [
                    "key"
                  ]
                },
                "example": {
                  "key": "string",
                  "value": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/platform-value-scores": {
      "get": {
        "operationId": "PlatformValueScoresList",
        "tags": [
          "golden_record"
        ],
        "summary": "Platform Value Scores List",
        "security": [
          {
            "ApiKeyAuth": [
              "platform-value-scores:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "platform-value-scores:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service_key_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authority_wins_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "authority_wins_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "override_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "override_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "contribution_ratio_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "contribution_ratio_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "recommendation_tier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recommendation_tier_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scored_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "scored_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "provider_key",
                "vendor_key",
                "service_key",
                "authority_wins",
                "override_count",
                "contribution_ratio",
                "recommendation_tier",
                "scored_at"
              ],
              "default": "scored_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "authority_wins": {
                      "type": "integer"
                    },
                    "override_count": {
                      "type": "integer"
                    },
                    "contribution_ratio": {
                      "type": "number"
                    },
                    "recommendation_tier": {
                      "type": "string"
                    },
                    "scored_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "recommendation_tier"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "authority_wins": 0,
                  "override_count": 0,
                  "contribution_ratio": 0,
                  "recommendation_tier": "string",
                  "scored_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/platform-value-scores/{id}": {
      "get": {
        "operationId": "PlatformValueScoresGet",
        "tags": [
          "golden_record"
        ],
        "summary": "Platform Value Scores Get",
        "security": [
          {
            "ApiKeyAuth": [
              "platform-value-scores:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "platform-value-scores:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "provider_key": {
                      "type": "string"
                    },
                    "vendor_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "service_key": {
                      "type": "string",
                      "nullable": true
                    },
                    "authority_wins": {
                      "type": "integer"
                    },
                    "override_count": {
                      "type": "integer"
                    },
                    "contribution_ratio": {
                      "type": "number"
                    },
                    "recommendation_tier": {
                      "type": "string"
                    },
                    "scored_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "provider_key",
                    "recommendation_tier"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "provider_key": "string",
                  "vendor_key": "string",
                  "service_key": "string",
                  "authority_wins": 0,
                  "override_count": 0,
                  "contribution_ratio": 0,
                  "recommendation_tier": "string",
                  "scored_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/platform-value-scores/trigger": {
      "post": {
        "operationId": "TriggerScoring",
        "tags": [
          "golden_record"
        ],
        "summary": "Trigger Scoring",
        "security": [
          {
            "ApiKeyAuth": [
              "platform-value-scores:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "platform-value-scores:write"
            ]
          }
        ],
        "description": "Trigger platform value scoring for the authenticated customer. Computes provider contribution scores and recommendation tiers.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "jobId",
                    "status"
                  ]
                },
                "example": {
                  "jobId": "string",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/portal/artifacts/{id}/download": {
      "post": {
        "operationId": "RequestPortalDownload",
        "tags": [
          "portal"
        ],
        "summary": "Request Portal Download",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:write"
            ]
          }
        ],
        "description": "Issue a time-limited signed download URL for a release artifact (id = \"<version>::<ref>\"): verify tier entitlement, record a download_audit row, return the signed URL + expiry (opened via the action openUrlField).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url",
                    "expiresAt"
                  ]
                },
                "example": {
                  "url": "string",
                  "expiresAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/portal/licences": {
      "get": {
        "operationId": "ListPortalLicences",
        "tags": [
          "portal"
        ],
        "summary": "List Portal Licences",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:read"
            ]
          }
        ],
        "description": "List this customer's offline (sovereign/enterprise) licences — tier, status, term. Empty for SaaS-only customers.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "items"
                  ]
                },
                "example": {
                  "items": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/portal/licences/{id}/activation-key": {
      "post": {
        "operationId": "RevealActivationKey",
        "tags": [
          "portal"
        ],
        "summary": "Reveal Activation Key",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:write"
            ]
          }
        ],
        "description": "Re-sign and return the deterministic activation key for one of the customer's offline licences (shown via the action revealField). Reconstructed from the stored row — never persisted in plaintext.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "activationKey": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "activationKey"
                  ]
                },
                "example": {
                  "activationKey": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/portal/releases": {
      "get": {
        "operationId": "ListPortalReleases",
        "tags": [
          "portal"
        ],
        "summary": "List Portal Releases",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:read"
            ]
          }
        ],
        "description": "List the downloadable release artifacts this customer's licence tier entitles (one flat row per artifact). Empty for non-download tiers.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "items"
                  ]
                },
                "example": {
                  "items": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/portal/support-tickets": {
      "get": {
        "operationId": "SupportTicketsList",
        "tags": [
          "portal"
        ],
        "summary": "Support Tickets List",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subject",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subject_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "body",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "body_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_by_email",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_by_email_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolved_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "resolved_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "subject",
                "body",
                "status",
                "priority",
                "created_by_email",
                "created_at",
                "updated_at",
                "resolved_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "status_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "status",
                "priority"
              ]
            }
          },
          {
            "name": "facets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "body": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "created_by_email": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "subject",
                    "body",
                    "created_by_email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "subject": "string",
                  "body": "string",
                  "status": "string",
                  "priority": "string",
                  "created_by_email": "string",
                  "created_at": "string",
                  "updated_at": "string",
                  "resolved_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "SupportTicketsCreate",
        "tags": [
          "portal"
        ],
        "summary": "Support Tickets Create",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "body": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string"
                  }
                },
                "required": [
                  "subject",
                  "body"
                ]
              },
              "example": {
                "subject": "string",
                "body": "string",
                "status": "string",
                "priority": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "body": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "created_by_email": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "subject",
                    "body",
                    "created_by_email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "subject": "string",
                  "body": "string",
                  "status": "string",
                  "priority": "string",
                  "created_by_email": "string",
                  "created_at": "string",
                  "updated_at": "string",
                  "resolved_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/portal/support-tickets/{id}": {
      "get": {
        "operationId": "SupportTicketsGet",
        "tags": [
          "portal"
        ],
        "summary": "Support Tickets Get",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "body": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "created_by_email": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "subject",
                    "body",
                    "created_by_email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "subject": "string",
                  "body": "string",
                  "status": "string",
                  "priority": "string",
                  "created_by_email": "string",
                  "created_at": "string",
                  "updated_at": "string",
                  "resolved_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "SupportTicketsUpdate",
        "tags": [
          "portal"
        ],
        "summary": "Support Tickets Update",
        "security": [
          {
            "ApiKeyAuth": [
              "portal:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "portal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "body": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "subject": "string",
                "body": "string",
                "status": "string",
                "priority": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "body": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "created_by_email": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "resolved_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "customer_id",
                    "subject",
                    "body",
                    "created_by_email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "subject": "string",
                  "body": "string",
                  "status": "string",
                  "priority": "string",
                  "created_by_email": "string",
                  "created_at": "string",
                  "updated_at": "string",
                  "resolved_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/pricing": {
      "get": {
        "operationId": "GetPricing",
        "tags": [
          "pricing"
        ],
        "summary": "Get Pricing",
        "security": [],
        "description": "Public pricing endpoint. Reads products/prices from Stripe, caches in Redis (1hr TTL). Returns the same shape as pricing.json.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tiers": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "packs": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "bundles": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "upgrades": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "support": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "overage": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "discounts": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "currencies": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "tiers",
                    "packs",
                    "bundles",
                    "upgrades",
                    "support",
                    "overage",
                    "discounts",
                    "currencies"
                  ]
                },
                "example": {
                  "tiers": {},
                  "packs": {},
                  "bundles": {},
                  "upgrades": {},
                  "support": {},
                  "overage": {},
                  "discounts": {},
                  "currencies": [
                    "string"
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests": {
      "get": {
        "operationId": "RestorationRequestsList",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests List",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target_timestamp_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "target_timestamp_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parallel_run",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "approved_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approved_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "approved_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "rejected_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejected_by_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejected_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "rejected_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "rejection_reason",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rejection_reason_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "records_processed_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_processed_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_failed_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "records_failed_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "started_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "started_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "target_timestamp",
                "status",
                "parallel_run",
                "approved_by",
                "approved_at",
                "rejected_by",
                "rejected_at",
                "rejection_reason",
                "records_processed",
                "records_failed",
                "started_at",
                "completed_at",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "target_timestamp": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "resolution_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "parallel_run": {
                      "type": "boolean"
                    },
                    "impact_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "verification_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejection_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "records_processed": {
                      "type": "integer"
                    },
                    "records_failed": {
                      "type": "integer"
                    },
                    "started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "target_timestamp"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "target_timestamp": "string",
                  "status": "string",
                  "resolution_config": {},
                  "parallel_run": true,
                  "impact_report": {},
                  "verification_report": {},
                  "progress_log": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "rejected_by": "string",
                  "rejected_at": "string",
                  "rejection_reason": "string",
                  "records_processed": 0,
                  "records_failed": 0,
                  "started_at": "string",
                  "completed_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "RestorationRequestsCreate",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Create",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "target_timestamp": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "resolution_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "parallel_run": {
                    "type": "boolean"
                  },
                  "impact_report": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "verification_report": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "progress_log": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "approved_by": {
                    "type": "string",
                    "nullable": true
                  },
                  "approved_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "rejected_by": {
                    "type": "string",
                    "nullable": true
                  },
                  "rejected_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "rejection_reason": {
                    "type": "string",
                    "nullable": true
                  },
                  "records_processed": {
                    "type": "integer"
                  },
                  "records_failed": {
                    "type": "integer"
                  },
                  "started_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "completed_at": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "target_timestamp"
                ]
              },
              "example": {
                "target_timestamp": "string",
                "status": "string",
                "resolution_config": {},
                "parallel_run": true,
                "impact_report": {},
                "verification_report": {},
                "progress_log": {},
                "approved_by": "string",
                "approved_at": "string",
                "rejected_by": "string",
                "rejected_at": "string",
                "rejection_reason": "string",
                "records_processed": 0,
                "records_failed": 0,
                "started_at": "string",
                "completed_at": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "target_timestamp": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "resolution_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "parallel_run": {
                      "type": "boolean"
                    },
                    "impact_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "verification_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejection_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "records_processed": {
                      "type": "integer"
                    },
                    "records_failed": {
                      "type": "integer"
                    },
                    "started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "target_timestamp"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "target_timestamp": "string",
                  "status": "string",
                  "resolution_config": {},
                  "parallel_run": true,
                  "impact_report": {},
                  "verification_report": {},
                  "progress_log": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "rejected_by": "string",
                  "rejected_at": "string",
                  "rejection_reason": "string",
                  "records_processed": 0,
                  "records_failed": 0,
                  "started_at": "string",
                  "completed_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}": {
      "get": {
        "operationId": "RestorationRequestsGet",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Get",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "target_timestamp": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "resolution_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "parallel_run": {
                      "type": "boolean"
                    },
                    "impact_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "verification_report": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "progress_log": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "approved_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "approved_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejected_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "rejection_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "records_processed": {
                      "type": "integer"
                    },
                    "records_failed": {
                      "type": "integer"
                    },
                    "started_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "target_timestamp"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "target_timestamp": "string",
                  "status": "string",
                  "resolution_config": {},
                  "parallel_run": true,
                  "impact_report": {},
                  "verification_report": {},
                  "progress_log": {},
                  "approved_by": "string",
                  "approved_at": "string",
                  "rejected_by": "string",
                  "rejected_at": "string",
                  "rejection_reason": "string",
                  "records_processed": 0,
                  "records_failed": 0,
                  "started_at": "string",
                  "completed_at": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/approve": {
      "post": {
        "operationId": "RestorationRequestsApprove",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Approve",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/cancel": {
      "post": {
        "operationId": "RestorationRequestsCancel",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Cancel",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/execute": {
      "post": {
        "operationId": "RestorationRequestsExecute",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Execute",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/preview": {
      "post": {
        "operationId": "RestorationRequestsPreview",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Preview",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/reject": {
      "post": {
        "operationId": "RestorationRequestsReject",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Reject",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "reason": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/request-approval": {
      "post": {
        "operationId": "RestorationRequestsRequestApproval",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Request Approval",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/restoration-requests/{id}/verify": {
      "post": {
        "operationId": "RestorationRequestsVerify",
        "tags": [
          "data_protection"
        ],
        "summary": "Restoration Requests Verify",
        "security": [
          {
            "ApiKeyAuth": [
              "restoration-requests:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "restoration-requests:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "notes": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/retention-policies": {
      "get": {
        "operationId": "RetentionPoliciesList",
        "tags": [
          "data_protection"
        ],
        "summary": "Retention Policies List",
        "security": [
          {
            "ApiKeyAuth": [
              "retention-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retention-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hot_retention_days_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "hot_retention_days_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "total_retention_days_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "total_retention_days_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "connection_id",
                "entity_type",
                "hot_retention_days",
                "total_retention_days",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "hot_retention_days": {
                      "type": "integer"
                    },
                    "total_retention_days": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "hot_retention_days": 0,
                  "total_retention_days": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "RetentionPoliciesCreate",
        "tags": [
          "data_protection"
        ],
        "summary": "Retention Policies Create",
        "security": [
          {
            "ApiKeyAuth": [
              "retention-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retention-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "hot_retention_days": {
                    "type": "integer"
                  },
                  "total_retention_days": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "entity_type": "string",
                "hot_retention_days": 0,
                "total_retention_days": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "hot_retention_days": {
                      "type": "integer"
                    },
                    "total_retention_days": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "hot_retention_days": 0,
                  "total_retention_days": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/retention-policies/{id}": {
      "delete": {
        "operationId": "RetentionPoliciesDelete",
        "tags": [
          "data_protection"
        ],
        "summary": "Retention Policies Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "retention-policies:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retention-policies:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "RetentionPoliciesGet",
        "tags": [
          "data_protection"
        ],
        "summary": "Retention Policies Get",
        "security": [
          {
            "ApiKeyAuth": [
              "retention-policies:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retention-policies:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "hot_retention_days": {
                      "type": "integer"
                    },
                    "total_retention_days": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "hot_retention_days": 0,
                  "total_retention_days": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "RetentionPoliciesUpdate",
        "tags": [
          "data_protection"
        ],
        "summary": "Retention Policies Update",
        "security": [
          {
            "ApiKeyAuth": [
              "retention-policies:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retention-policies:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connection_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "entity_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "hot_retention_days": {
                    "type": "integer"
                  },
                  "total_retention_days": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "connection_id": "00000000-0000-0000-0000-000000000000",
                "entity_type": "string",
                "hot_retention_days": 0,
                "total_retention_days": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "connection_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "entity_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "hot_retention_days": {
                      "type": "integer"
                    },
                    "total_retention_days": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "connection_id": "00000000-0000-0000-0000-000000000000",
                  "entity_type": "string",
                  "hot_retention_days": 0,
                  "total_retention_days": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/retrieve/{recordId}": {
      "get": {
        "operationId": "GetArchivedRecord",
        "tags": [
          "retrieval"
        ],
        "summary": "Get Archived Record",
        "security": [
          {
            "ApiKeyAuth": [
              "retrieve:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retrieve:read"
            ]
          }
        ],
        "description": "Retrieve a previously-archived record by its archive id (tenant-scoped). A hot record returns state:available with the record; an archive/rehydrating record starts (or continues) rehydration and returns state:rehydrating.",
        "parameters": [
          {
            "name": "recordId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "string"
                    },
                    "record": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "metadata": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "etaHours": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "state"
                  ]
                },
                "example": {
                  "state": "string",
                  "record": {},
                  "metadata": {},
                  "etaHours": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/retrieve/{recordId}/status": {
      "get": {
        "operationId": "GetArchivedRecordStatus",
        "tags": [
          "retrieval"
        ],
        "summary": "Get Archived Record Status",
        "security": [
          {
            "ApiKeyAuth": [
              "retrieve:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "retrieve:read"
            ]
          }
        ],
        "description": "Rehydration status of a previously-archived record (tenant-scoped).",
        "parameters": [
          {
            "name": "recordId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accessTier": {
                      "type": "string"
                    },
                    "rehydrationStatus": {
                      "type": "string"
                    },
                    "requestedAt": {
                      "type": "string"
                    },
                    "readyAt": {
                      "type": "string"
                    },
                    "etaHours": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "accessTier",
                    "rehydrationStatus"
                  ]
                },
                "example": {
                  "accessTier": "string",
                  "rehydrationStatus": "string",
                  "requestedAt": "string",
                  "readyAt": "string",
                  "etaHours": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/schema/{entity}": {
      "get": {
        "operationId": "GetEntitySchema",
        "tags": [
          "schema"
        ],
        "summary": "Get Entity Schema",
        "security": [
          {
            "ApiKeyAuth": [
              "schema:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "schema:read"
            ]
          }
        ],
        "description": "Declared-or-inferred field source for an entity (declared from TableDefinitions, inferred from intelligence.schema_contracts).",
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "entity": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    }
                  },
                  "required": [
                    "kind"
                  ]
                },
                "example": {
                  "kind": "string",
                  "fields": {},
                  "entity": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/settings/api-keys": {
      "get": {
        "operationId": "ListApiKeys",
        "tags": [
          "settings"
        ],
        "summary": "List Api Keys",
        "security": [
          {
            "ApiKeyAuth": [
              "settings:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "settings:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "keys"
                  ]
                },
                "example": {
                  "keys": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "CreateApiKey",
        "tags": [
          "settings"
        ],
        "summary": "Create Api Key",
        "security": [
          {
            "ApiKeyAuth": [
              "settings:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "settings:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "displayName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "scopes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "expiresInDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 365
                  }
                }
              },
              "example": {
                "displayName": "string",
                "scopes": [
                  "string"
                ],
                "expiresInDays": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "key": {
                      "type": "string"
                    },
                    "prefix": {
                      "type": "string"
                    },
                    "displayName": {
                      "type": "string",
                      "nullable": true
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "expiresAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "createdAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "key",
                    "prefix",
                    "scopes",
                    "createdAt"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "key": "string",
                  "prefix": "string",
                  "displayName": "string",
                  "scopes": [
                    "string"
                  ],
                  "expiresAt": "string",
                  "createdAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/settings/api-keys/{keyId}": {
      "delete": {
        "operationId": "RevokeApiKey",
        "tags": [
          "settings"
        ],
        "summary": "Revoke Api Key",
        "security": [
          {
            "ApiKeyAuth": [
              "settings:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "settings:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "revoked": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "revoked"
                  ]
                },
                "example": {
                  "revoked": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/settings/workspace/mfa": {
      "get": {
        "operationId": "GetWorkspaceMfa",
        "tags": [
          "workspace"
        ],
        "summary": "Get Workspace Mfa",
        "security": [
          {
            "ApiKeyAuth": [
              "settings:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "settings:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mfaRequired": {
                      "type": "boolean"
                    },
                    "enforcedAt": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "mfaRequired"
                  ]
                },
                "example": {
                  "mfaRequired": true,
                  "enforcedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "SetWorkspaceMfa",
        "tags": [
          "workspace"
        ],
        "summary": "Set Workspace Mfa",
        "security": [
          {
            "ApiKeyAuth": [
              "settings:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "settings:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mfaRequired": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "mfaRequired"
                ]
              },
              "example": {
                "mfaRequired": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mfaRequired": {
                      "type": "boolean"
                    },
                    "enforcedAt": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "mfaRequired"
                  ]
                },
                "example": {
                  "mfaRequired": true,
                  "enforcedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/terms/accept": {
      "post": {
        "operationId": "AcceptTerms",
        "tags": [
          "terms"
        ],
        "summary": "Accept Terms",
        "security": [
          {
            "ApiKeyAuth": [
              "terms:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "terms:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "version": {
                    "type": "string"
                  }
                },
                "required": [
                  "version"
                ]
              },
              "example": {
                "version": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accepted": {
                      "type": "boolean"
                    },
                    "version": {
                      "type": "string"
                    },
                    "acceptedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "accepted",
                    "version",
                    "acceptedAt"
                  ]
                },
                "example": {
                  "accepted": true,
                  "version": "string",
                  "acceptedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/terms/status": {
      "get": {
        "operationId": "GetTermsStatus",
        "tags": [
          "terms"
        ],
        "summary": "Get Terms Status",
        "security": [
          {
            "ApiKeyAuth": [
              "terms:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "terms:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accepted": {
                      "type": "boolean"
                    },
                    "currentVersion": {
                      "type": "string"
                    },
                    "acceptedVersion": {
                      "type": "string",
                      "nullable": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "content": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "accepted",
                    "currentVersion",
                    "content"
                  ]
                },
                "example": {
                  "accepted": true,
                  "currentVersion": "string",
                  "acceptedVersion": "string",
                  "acceptedAt": "string",
                  "content": [
                    {}
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/unified/records": {
      "delete": {
        "operationId": "UnifiedDeleteAction",
        "tags": [
          "unified_api"
        ],
        "summary": "Unified Delete Action",
        "security": [
          {
            "ApiKeyAuth": [
              "unified:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "unified:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerKey": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "entityType": {
                    "type": "string"
                  }
                },
                "required": [
                  "providerKey",
                  "externalId"
                ]
              },
              "example": {
                "providerKey": "string",
                "externalId": "string",
                "entityType": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                },
                "example": {
                  "deleted": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "UnifiedListAction",
        "tags": [
          "unified_api"
        ],
        "summary": "Unified List Action",
        "security": [
          {
            "ApiKeyAuth": [
              "unified:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "unified:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quality_score_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "quality_score_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "field_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "field_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "source_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "source_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "created_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "created_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "entity_type"
              ]
            }
          },
          {
            "name": "facets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "records"
                  ]
                },
                "example": {
                  "records": [
                    {}
                  ],
                  "total": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "UnifiedCreateAction",
        "tags": [
          "unified_api"
        ],
        "summary": "Unified Create Action",
        "security": [
          {
            "ApiKeyAuth": [
              "unified:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "unified:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerKey": {
                    "type": "string"
                  },
                  "entityType": {
                    "type": "string"
                  },
                  "fields": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "providerKey",
                  "fields"
                ]
              },
              "example": {
                "providerKey": "string",
                "entityType": "string",
                "fields": {}
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    }
                  }
                },
                "example": {
                  "record": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "UnifiedUpdateAction",
        "tags": [
          "unified_api"
        ],
        "summary": "Unified Update Action",
        "security": [
          {
            "ApiKeyAuth": [
              "unified:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "unified:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerKey": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "entityType": {
                    "type": "string"
                  },
                  "fields": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "providerKey",
                  "externalId",
                  "fields"
                ]
              },
              "example": {
                "providerKey": "string",
                "externalId": "string",
                "entityType": "string",
                "fields": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    }
                  }
                },
                "example": {
                  "record": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/unified/records/{entityClusterId}": {
      "get": {
        "operationId": "UnifiedGetAction",
        "tags": [
          "unified_api"
        ],
        "summary": "Unified Get Action",
        "security": [
          {
            "ApiKeyAuth": [
              "unified:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "unified:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "entityClusterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    }
                  }
                },
                "example": {
                  "record": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/webhooks/subscriptions": {
      "get": {
        "operationId": "WebhookSubscriptionsList",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Webhook Subscriptions List",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secret_ref",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secret_ref_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "verified",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "url",
                "description",
                "secret_ref",
                "verified",
                "enabled",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "url": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_types": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "secret_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "url"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "url": "string",
                  "description": "string",
                  "event_types": {},
                  "secret_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "WebhookSubscriptionsCreate",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Webhook Subscriptions Create",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "event_types": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "string",
                "description": "string",
                "event_types": {},
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "url": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_types": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "secret_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "url"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "url": "string",
                  "description": "string",
                  "event_types": {},
                  "secret_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/webhooks/subscriptions/{id}": {
      "delete": {
        "operationId": "WebhookSubscriptionsDelete",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Webhook Subscriptions Delete",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "WebhookSubscriptionsGet",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Webhook Subscriptions Get",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "url": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_types": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "secret_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "url"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "url": "string",
                  "description": "string",
                  "event_types": {},
                  "secret_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "WebhookSubscriptionsUpdate",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Webhook Subscriptions Update",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "event_types": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "url": "string",
                "description": "string",
                "event_types": {},
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "url": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "event_types": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "secret_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "url"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "url": "string",
                  "description": "string",
                  "event_types": {},
                  "secret_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/webhooks/subscriptions/{id}/secret": {
      "post": {
        "operationId": "RotateWebhookSecret",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Rotate Webhook Secret",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "description": "Generate a NEW HMAC signing secret for this webhook subscription, store it encrypted (KMS), and return the plaintext ONCE. The previous secret stops working immediately. Verify deliveries by recomputing HMAC-SHA256 over the raw request body and comparing to the X-Inferrex-Signature header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "signingSecret": {
                      "type": "string",
                      "description": "Shown once — store it now; it is never returned again."
                    }
                  },
                  "required": [
                    "id",
                    "signingSecret"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "signingSecret": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/webhooks/subscriptions/{id}/test": {
      "post": {
        "operationId": "TestWebhookSubscription",
        "tags": [
          "event_subscriptions"
        ],
        "summary": "Test Webhook Subscription",
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": []
          }
        ],
        "description": "Send a signed `webhook.test` event to this subscription URL now (synchronously) and report the result. Marks the subscription verified on a 2xx.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "delivered": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "integer",
                      "description": "HTTP status returned by the endpoint (omitted on transport failure)."
                    }
                  },
                  "required": [
                    "id",
                    "delivered"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "delivered": true,
                  "status": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      }
    },
    "/v1/workflow-runs": {
      "get": {
        "operationId": "WorkflowRunsList",
        "tags": [
          "workflows"
        ],
        "summary": "Workflow Runs List",
        "security": [
          {
            "ApiKeyAuth": [
              "workflow-runs:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflow-runs:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workflow_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "steps_completed_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "steps_completed_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "steps_total_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "steps_total_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "error_message",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "error_message_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "started_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "started_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "completed_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "duration_ms_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "duration_ms_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "description": "Page size.",
              "default": 50
            },
            "description": "Page size."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Opaque cursor from a previous response's nextCursor; omit for the first page."
            },
            "description": "Opaque cursor from a previous response's nextCursor; omit for the first page."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workflow_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "trigger_event": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "step_outputs": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "steps_completed": {
                      "type": "integer"
                    },
                    "steps_total": {
                      "type": "integer"
                    },
                    "error_message": {
                      "type": "string",
                      "nullable": true
                    },
                    "error_context": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "started_at": {
                      "type": "string"
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "duration_ms": {
                      "type": "integer",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workflow_id",
                    "customer_id",
                    "steps_total"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workflow_id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "trigger_event": {},
                  "step_outputs": {},
                  "status": "string",
                  "steps_completed": 0,
                  "steps_total": 0,
                  "error_message": "string",
                  "error_context": {},
                  "started_at": "string",
                  "completed_at": "string",
                  "duration_ms": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflow-runs/{id}": {
      "get": {
        "operationId": "WorkflowRunsGet",
        "tags": [
          "workflows"
        ],
        "summary": "Workflow Runs Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workflow-runs:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflow-runs:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workflow_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "trigger_event": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "step_outputs": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "steps_completed": {
                      "type": "integer"
                    },
                    "steps_total": {
                      "type": "integer"
                    },
                    "error_message": {
                      "type": "string",
                      "nullable": true
                    },
                    "error_context": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "started_at": {
                      "type": "string"
                    },
                    "completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "duration_ms": {
                      "type": "integer",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workflow_id",
                    "customer_id",
                    "steps_total"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workflow_id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "trigger_event": {},
                  "step_outputs": {},
                  "status": "string",
                  "steps_completed": 0,
                  "steps_total": 0,
                  "error_message": "string",
                  "error_context": {},
                  "started_at": "string",
                  "completed_at": "string",
                  "duration_ms": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflow-runs/{id}/cancel": {
      "post": {
        "operationId": "CancelRun",
        "tags": [
          "workflows"
        ],
        "summary": "Cancel Run",
        "security": [
          {
            "ApiKeyAuth": [
              "workflow-runs:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflow-runs:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflows": {
      "get": {
        "operationId": "WorkflowsList",
        "tags": [
          "workflows"
        ],
        "summary": "Workflows List",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "last_run_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "last_run_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "run_count_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "run_count_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "name",
                "description",
                "enabled",
                "last_run_at",
                "run_count",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "trigger_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "steps": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_run_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "run_count": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name",
                    "trigger_config",
                    "steps"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "trigger_config": {},
                  "steps": {},
                  "enabled": true,
                  "last_run_at": "string",
                  "run_count": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "WorkflowsCreate",
        "tags": [
          "workflows"
        ],
        "summary": "Workflows Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "trigger_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "steps": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "last_run_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "run_count": {
                    "type": "integer"
                  }
                },
                "required": [
                  "name",
                  "trigger_config",
                  "steps"
                ]
              },
              "example": {
                "name": "string",
                "description": "string",
                "trigger_config": {},
                "steps": {},
                "enabled": true,
                "last_run_at": "string",
                "run_count": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "trigger_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "steps": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_run_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "run_count": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name",
                    "trigger_config",
                    "steps"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "trigger_config": {},
                  "steps": {},
                  "enabled": true,
                  "last_run_at": "string",
                  "run_count": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflows/{id}": {
      "delete": {
        "operationId": "WorkflowsDelete",
        "tags": [
          "workflows"
        ],
        "summary": "Workflows Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "WorkflowsGet",
        "tags": [
          "workflows"
        ],
        "summary": "Workflows Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "trigger_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "steps": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_run_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "run_count": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name",
                    "trigger_config",
                    "steps"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "trigger_config": {},
                  "steps": {},
                  "enabled": true,
                  "last_run_at": "string",
                  "run_count": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "WorkflowsUpdate",
        "tags": [
          "workflows"
        ],
        "summary": "Workflows Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "trigger_config": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "steps": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "last_run_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "run_count": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "name": "string",
                "description": "string",
                "trigger_config": {},
                "steps": {},
                "enabled": true,
                "last_run_at": "string",
                "run_count": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "trigger_config": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "steps": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "last_run_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "run_count": {
                      "type": "integer"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name",
                    "trigger_config",
                    "steps"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "trigger_config": {},
                  "steps": {},
                  "enabled": true,
                  "last_run_at": "string",
                  "run_count": 0,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflows/{id}/disable": {
      "post": {
        "operationId": "DisableWorkflow",
        "tags": [
          "workflows"
        ],
        "summary": "Disable Workflow",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflows/{id}/enable": {
      "post": {
        "operationId": "EnableWorkflow",
        "tags": [
          "workflows"
        ],
        "summary": "Enable Workflow",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workflows/{id}/trigger": {
      "post": {
        "operationId": "TriggerWorkflow",
        "tags": [
          "workflows"
        ],
        "summary": "Trigger Workflow",
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workflows:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "input": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Optional input data passed to first step"
                  }
                }
              },
              "example": {
                "input": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "runId",
                    "status"
                  ]
                },
                "example": {
                  "runId": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/accept-invite": {
      "post": {
        "operationId": "AcceptInvite",
        "tags": [
          "workspace"
        ],
        "summary": "Accept Invite",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "inviteId": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  }
                },
                "required": [
                  "inviteId",
                  "workspaceId"
                ]
              },
              "example": {
                "inviteId": "string",
                "workspaceId": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    },
                    "acceptedAt": {
                      "type": "string"
                    },
                    "isActive": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "email",
                    "role",
                    "acceptedAt",
                    "isActive"
                  ]
                },
                "example": {
                  "id": "string",
                  "email": "string",
                  "role": "string",
                  "acceptedAt": "string",
                  "isActive": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/audit-trail": {
      "get": {
        "operationId": "PlatformAuditTrailList",
        "tags": [
          "rbac"
        ],
        "summary": "Platform Audit Trail List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "actor_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "actor_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actor_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "user_agent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_agent_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "workspace_id",
                "actor_id",
                "actor_type",
                "action",
                "resource_type",
                "resource_id",
                "ip_address",
                "user_agent",
                "created_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "actor_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "actor_type": {
                      "type": "string"
                    },
                    "action": {
                      "type": "string"
                    },
                    "resource_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "resource_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "before_state": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "after_state": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "ip_address": {
                      "type": "string",
                      "nullable": true
                    },
                    "user_agent": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "actor_type",
                    "action"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "actor_id": "00000000-0000-0000-0000-000000000000",
                  "actor_type": "string",
                  "action": "string",
                  "resource_type": "string",
                  "resource_id": "00000000-0000-0000-0000-000000000000",
                  "before_state": {},
                  "after_state": {},
                  "ip_address": "string",
                  "user_agent": "string",
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/effective-permissions/{userId}": {
      "get": {
        "operationId": "GetEffectivePermissions",
        "tags": [
          "workspace"
        ],
        "summary": "Get Effective Permissions",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "userId": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    },
                    "permissions": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "userId",
                    "role",
                    "permissions"
                  ]
                },
                "example": {
                  "userId": "string",
                  "role": "string",
                  "permissions": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/entitlements": {
      "get": {
        "operationId": "GetEntitlements",
        "tags": [
          "workspace"
        ],
        "summary": "Get Entitlements",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "description": "The authenticated customer's active entitlement codes, for client-side feature/nav gating.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entitlements": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "entitlements"
                  ]
                },
                "example": {
                  "entitlements": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/environments": {
      "get": {
        "operationId": "EnvironmentsList",
        "tags": [
          "workspace"
        ],
        "summary": "Environments List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_default",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "workspace_id",
                "name",
                "kind",
                "is_default",
                "description",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "is_default": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "is_default": true,
                  "description": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "EnvironmentsCreate",
        "tags": [
          "workspace"
        ],
        "summary": "Environments Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "is_default": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              },
              "example": {
                "name": "string",
                "kind": "string",
                "is_default": true,
                "description": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "is_default": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "is_default": true,
                  "description": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/environments/{id}": {
      "delete": {
        "operationId": "EnvironmentsDelete",
        "tags": [
          "workspace"
        ],
        "summary": "Environments Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "EnvironmentsGet",
        "tags": [
          "workspace"
        ],
        "summary": "Environments Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "is_default": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "is_default": true,
                  "description": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "EnvironmentsUpdate",
        "tags": [
          "workspace"
        ],
        "summary": "Environments Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "is_default": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "example": {
                "name": "string",
                "kind": "string",
                "is_default": true,
                "description": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "is_default": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "is_default": true,
                  "description": "string",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/invite": {
      "post": {
        "operationId": "WorkspaceInvite",
        "tags": [
          "workspace"
        ],
        "summary": "Workspace Invite",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "viewer",
                      "operator",
                      "editor",
                      "admin"
                    ]
                  },
                  "displayName": {
                    "type": "string"
                  }
                },
                "required": [
                  "email"
                ]
              },
              "example": {
                "email": "string",
                "role": "viewer",
                "displayName": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "tempPassword": {
                      "type": "string"
                    },
                    "invitedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "email",
                    "role",
                    "status"
                  ]
                },
                "example": {
                  "id": "string",
                  "email": "string",
                  "role": "string",
                  "status": "string",
                  "tempPassword": "string",
                  "invitedAt": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/invite-policy": {
      "get": {
        "operationId": "InvitePoliciesList",
        "tags": [
          "workspace"
        ],
        "summary": "Invite Policies List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "require_approval",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "approver_role",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approver_role_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "otp_delivery",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "otp_delivery_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "otp_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "require_approval",
                "approver_role",
                "otp_delivery",
                "otp_channel_id",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "require_approval": {
                      "type": "boolean"
                    },
                    "approver_role": {
                      "type": "string"
                    },
                    "otp_delivery": {
                      "type": "string"
                    },
                    "otp_channel_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "require_approval": true,
                  "approver_role": "string",
                  "otp_delivery": "string",
                  "otp_channel_id": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "InvitePoliciesCreate",
        "tags": [
          "workspace"
        ],
        "summary": "Invite Policies Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "require_approval": {
                    "type": "boolean"
                  },
                  "approver_role": {
                    "type": "string"
                  },
                  "otp_delivery": {
                    "type": "string"
                  },
                  "otp_channel_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                }
              },
              "example": {
                "require_approval": true,
                "approver_role": "string",
                "otp_delivery": "string",
                "otp_channel_id": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "require_approval": {
                      "type": "boolean"
                    },
                    "approver_role": {
                      "type": "string"
                    },
                    "otp_delivery": {
                      "type": "string"
                    },
                    "otp_channel_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "require_approval": true,
                  "approver_role": "string",
                  "otp_delivery": "string",
                  "otp_channel_id": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/invite-policy/{id}": {
      "get": {
        "operationId": "InvitePoliciesGet",
        "tags": [
          "workspace"
        ],
        "summary": "Invite Policies Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "require_approval": {
                      "type": "boolean"
                    },
                    "approver_role": {
                      "type": "string"
                    },
                    "otp_delivery": {
                      "type": "string"
                    },
                    "otp_channel_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "require_approval": true,
                  "approver_role": "string",
                  "otp_delivery": "string",
                  "otp_channel_id": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "InvitePoliciesUpdate",
        "tags": [
          "workspace"
        ],
        "summary": "Invite Policies Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "require_approval": {
                    "type": "boolean"
                  },
                  "approver_role": {
                    "type": "string"
                  },
                  "otp_delivery": {
                    "type": "string"
                  },
                  "otp_channel_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                }
              },
              "example": {
                "require_approval": true,
                "approver_role": "string",
                "otp_delivery": "string",
                "otp_channel_id": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "require_approval": {
                      "type": "boolean"
                    },
                    "approver_role": {
                      "type": "string"
                    },
                    "otp_delivery": {
                      "type": "string"
                    },
                    "otp_channel_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "require_approval": true,
                  "approver_role": "string",
                  "otp_delivery": "string",
                  "otp_channel_id": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/ip-allowlist": {
      "get": {
        "operationId": "GetIpAllowlist",
        "tags": [
          "workspace"
        ],
        "summary": "Get Ip Allowlist",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ipAllowlist": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "ipAllowlist"
                  ]
                },
                "example": {
                  "ipAllowlist": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "UpdateIpAllowlist",
        "tags": [
          "workspace"
        ],
        "summary": "Update Ip Allowlist",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ipAllowlist": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "ipAllowlist"
                ]
              },
              "example": {
                "ipAllowlist": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ipAllowlist": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "ipAllowlist"
                  ]
                },
                "example": {
                  "ipAllowlist": {}
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/notification-channels": {
      "get": {
        "operationId": "NotificationChannelsList",
        "tags": [
          "workspace"
        ],
        "summary": "Notification Channels List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_address_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "credential_ref",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "credential_ref_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "verified",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "customer_id",
                "name",
                "kind",
                "provider",
                "from_address",
                "from_name",
                "domain",
                "credential_ref",
                "verified",
                "enabled",
                "created_at",
                "updated_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_address": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "domain": {
                      "type": "string",
                      "nullable": true
                    },
                    "config": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "credential_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "provider": "string",
                  "from_address": "string",
                  "from_name": "string",
                  "domain": "string",
                  "config": {},
                  "credential_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "NotificationChannelsCreate",
        "tags": [
          "workspace"
        ],
        "summary": "Notification Channels Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string",
                    "nullable": true
                  },
                  "from_address": {
                    "type": "string",
                    "nullable": true
                  },
                  "from_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "domain": {
                    "type": "string",
                    "nullable": true
                  },
                  "config": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "example": {
                "name": "string",
                "kind": "string",
                "provider": "string",
                "from_address": "string",
                "from_name": "string",
                "domain": "string",
                "config": {},
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_address": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "domain": {
                      "type": "string",
                      "nullable": true
                    },
                    "config": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "credential_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "provider": "string",
                  "from_address": "string",
                  "from_name": "string",
                  "domain": "string",
                  "config": {},
                  "credential_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/notification-channels/{id}": {
      "delete": {
        "operationId": "NotificationChannelsDelete",
        "tags": [
          "workspace"
        ],
        "summary": "Notification Channels Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "NotificationChannelsGet",
        "tags": [
          "workspace"
        ],
        "summary": "Notification Channels Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_address": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "domain": {
                      "type": "string",
                      "nullable": true
                    },
                    "config": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "credential_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "provider": "string",
                  "from_address": "string",
                  "from_name": "string",
                  "domain": "string",
                  "config": {},
                  "credential_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "NotificationChannelsUpdate",
        "tags": [
          "workspace"
        ],
        "summary": "Notification Channels Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string",
                    "nullable": true
                  },
                  "from_address": {
                    "type": "string",
                    "nullable": true
                  },
                  "from_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "domain": {
                    "type": "string",
                    "nullable": true
                  },
                  "config": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "kind": "string",
                "provider": "string",
                "from_address": "string",
                "from_name": "string",
                "domain": "string",
                "config": {},
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "customer_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_address": {
                      "type": "string",
                      "nullable": true
                    },
                    "from_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "domain": {
                      "type": "string",
                      "nullable": true
                    },
                    "config": {
                      "type": "object",
                      "additionalProperties": true,
                      "nullable": true
                    },
                    "credential_ref": {
                      "type": "string",
                      "nullable": true
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "customer_id",
                    "name"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "customer_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "kind": "string",
                  "provider": "string",
                  "from_address": "string",
                  "from_name": "string",
                  "domain": "string",
                  "config": {},
                  "credential_ref": "string",
                  "verified": true,
                  "enabled": true,
                  "created_at": "string",
                  "updated_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/notification-channels/{id}/credential": {
      "post": {
        "operationId": "SetChannelCredential",
        "tags": [
          "notifications"
        ],
        "summary": "Set Channel Credential",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "secret": {
                    "type": "string"
                  },
                  "config": {
                    "type": "object",
                    "additionalProperties": true,
                    "nullable": true
                  }
                },
                "required": [
                  "secret"
                ]
              },
              "example": {
                "secret": "string",
                "config": {}
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "ok": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "ok"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "ok": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/notification-channels/{id}/verify": {
      "post": {
        "operationId": "VerifyChannel",
        "tags": [
          "notifications"
        ],
        "summary": "Verify Channel",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "verified": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "verified"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "verified": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/permissions": {
      "get": {
        "operationId": "ResourcePermissionsList",
        "tags": [
          "rbac"
        ],
        "summary": "Resource Permissions List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "permission",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "permission_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "effect",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "effect_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granted_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "granted_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "granted_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "workspace_id",
                "user_id",
                "resource_type",
                "resource_id",
                "permission",
                "effect",
                "granted_by",
                "granted_at"
              ],
              "default": "granted_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "user_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "resource_type": {
                      "type": "string"
                    },
                    "resource_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "permission": {
                      "type": "string"
                    },
                    "effect": {
                      "type": "string"
                    },
                    "granted_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "granted_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "user_id",
                    "resource_type",
                    "permission",
                    "effect"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "user_id": "00000000-0000-0000-0000-000000000000",
                  "resource_type": "string",
                  "resource_id": "00000000-0000-0000-0000-000000000000",
                  "permission": "string",
                  "effect": "string",
                  "granted_by": "00000000-0000-0000-0000-000000000000",
                  "granted_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "ResourcePermissionsCreate",
        "tags": [
          "rbac"
        ],
        "summary": "Resource Permissions Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "user_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "resource_type": {
                    "type": "string"
                  },
                  "resource_id": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "permission": {
                    "type": "string"
                  },
                  "effect": {
                    "type": "string"
                  },
                  "granted_at": {
                    "type": "string"
                  }
                },
                "required": [
                  "user_id",
                  "resource_type",
                  "permission",
                  "effect"
                ]
              },
              "example": {
                "user_id": "00000000-0000-0000-0000-000000000000",
                "resource_type": "string",
                "resource_id": "00000000-0000-0000-0000-000000000000",
                "permission": "string",
                "effect": "string",
                "granted_at": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "user_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "resource_type": {
                      "type": "string"
                    },
                    "resource_id": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "permission": {
                      "type": "string"
                    },
                    "effect": {
                      "type": "string"
                    },
                    "granted_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "granted_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "user_id",
                    "resource_type",
                    "permission",
                    "effect"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "user_id": "00000000-0000-0000-0000-000000000000",
                  "resource_type": "string",
                  "resource_id": "00000000-0000-0000-0000-000000000000",
                  "permission": "string",
                  "effect": "string",
                  "granted_by": "00000000-0000-0000-0000-000000000000",
                  "granted_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/permissions/{id}": {
      "delete": {
        "operationId": "ResourcePermissionsDelete",
        "tags": [
          "rbac"
        ],
        "summary": "Resource Permissions Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/sso/providers": {
      "get": {
        "operationId": "ListSsoProviders",
        "tags": [
          "sso"
        ],
        "summary": "List Sso Providers",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "providers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "maxProviders": {
                      "type": "integer"
                    },
                    "deploymentMode": {
                      "type": "string"
                    },
                    "sovereignMode": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "providers",
                    "maxProviders",
                    "deploymentMode",
                    "sovereignMode"
                  ]
                },
                "example": {
                  "providers": [
                    {}
                  ],
                  "maxProviders": 0,
                  "deploymentMode": "string",
                  "sovereignMode": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "CreateSsoProvider",
        "tags": [
          "sso"
        ],
        "summary": "Create Sso Provider",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "providerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "displayName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "saml",
                      "oidc"
                    ]
                  },
                  "idpEntityId": {
                    "type": "string",
                    "maxLength": 1024
                  },
                  "ssoUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "certificate": {
                    "type": "string"
                  },
                  "clientId": {
                    "type": "string",
                    "maxLength": 1024
                  },
                  "issuer": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "clientSecret": {
                    "type": "string",
                    "maxLength": 2048
                  }
                },
                "required": [
                  "providerId",
                  "displayName",
                  "type"
                ]
              },
              "example": {
                "providerId": "string",
                "displayName": "string",
                "type": "saml",
                "idpEntityId": "string",
                "ssoUrl": "string",
                "certificate": "string",
                "clientId": "string",
                "issuer": "string",
                "clientSecret": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "provider": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "sovereignMode": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "provider",
                    "sovereignMode"
                  ]
                },
                "example": {
                  "provider": {},
                  "sovereignMode": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/sso/providers/{providerId}": {
      "delete": {
        "operationId": "DeleteSsoProvider",
        "tags": [
          "sso"
        ],
        "summary": "Delete Sso Provider",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "providerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                },
                "example": {
                  "deleted": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/sso/role-mapping": {
      "get": {
        "operationId": "GetSsoRoleMapping",
        "tags": [
          "sso"
        ],
        "summary": "Get Sso Role Mapping",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "maxEntries": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "mappings",
                    "maxEntries"
                  ]
                },
                "example": {
                  "mappings": [
                    {}
                  ],
                  "maxEntries": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "UpdateSsoRoleMapping",
        "tags": [
          "sso"
        ],
        "summary": "Update Sso Role Mapping",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mappings": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "maximum": 50
                  }
                },
                "required": [
                  "mappings"
                ]
              },
              "example": {
                "mappings": [
                  {}
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "mappings",
                    "updatedAt"
                  ]
                },
                "example": {
                  "mappings": [
                    {}
                  ],
                  "updatedAt": "2026-01-01T00:00:00Z"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://913g6.wiremockapi.cloud",
          "description": "Sandbox mock (part 2)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/team-members": {
      "get": {
        "operationId": "TeamMembersList",
        "tags": [
          "rbac"
        ],
        "summary": "Team Members List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "added_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "added_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "added_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "team_id",
                "user_id",
                "workspace_id",
                "added_at",
                "added_by"
              ],
              "default": "added_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "team_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "user_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "added_at": {
                      "type": "string"
                    },
                    "added_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id"
                  ]
                },
                "example": {
                  "team_id": "00000000-0000-0000-0000-000000000000",
                  "user_id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "added_at": "string",
                  "added_by": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "TeamMembersCreate",
        "tags": [
          "rbac"
        ],
        "summary": "Team Members Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "team_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "user_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "added_at": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "team_id": "00000000-0000-0000-0000-000000000000",
                "user_id": "00000000-0000-0000-0000-000000000000",
                "added_at": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "team_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "user_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "added_at": {
                      "type": "string"
                    },
                    "added_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id"
                  ]
                },
                "example": {
                  "team_id": "00000000-0000-0000-0000-000000000000",
                  "user_id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "added_at": "string",
                  "added_by": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/team-members/{teamId}/{userId}": {
      "delete": {
        "operationId": "RemoveTeamMember",
        "tags": [
          "workspace"
        ],
        "summary": "Remove Team Member",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/team-resources": {
      "get": {
        "operationId": "TeamResourcesList",
        "tags": [
          "rbac"
        ],
        "summary": "Team Resources List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tagged_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tagged_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tagged_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "team_id",
                "resource_type",
                "resource_id",
                "workspace_id",
                "tagged_at",
                "tagged_by"
              ],
              "default": "tagged_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "team_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "resource_type": {
                      "type": "string"
                    },
                    "resource_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "tagged_at": {
                      "type": "string"
                    },
                    "tagged_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id"
                  ]
                },
                "example": {
                  "team_id": "00000000-0000-0000-0000-000000000000",
                  "resource_type": "string",
                  "resource_id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "tagged_at": "string",
                  "tagged_by": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "TeamResourcesCreate",
        "tags": [
          "rbac"
        ],
        "summary": "Team Resources Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "team_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "resource_type": {
                    "type": "string"
                  },
                  "resource_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "tagged_at": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "team_id": "00000000-0000-0000-0000-000000000000",
                "resource_type": "string",
                "resource_id": "00000000-0000-0000-0000-000000000000",
                "tagged_at": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "team_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "resource_type": {
                      "type": "string"
                    },
                    "resource_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "tagged_at": {
                      "type": "string"
                    },
                    "tagged_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id"
                  ]
                },
                "example": {
                  "team_id": "00000000-0000-0000-0000-000000000000",
                  "resource_type": "string",
                  "resource_id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "tagged_at": "string",
                  "tagged_by": "00000000-0000-0000-0000-000000000000"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/team-resources/{teamId}/{resourceType}/{resourceId}": {
      "delete": {
        "operationId": "RemoveTeamResource",
        "tags": [
          "workspace"
        ],
        "summary": "Remove Team Resource",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resourceType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "connection",
                "pipeline",
                "environment",
                "workspace"
              ]
            }
          },
          {
            "name": "resourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                },
                "example": {
                  "success": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/teams": {
      "get": {
        "operationId": "TeamsList",
        "tags": [
          "rbac"
        ],
        "summary": "Teams List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "workspace_id",
                "name",
                "description",
                "created_by",
                "created_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_by": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name",
                    "created_by"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "created_by": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "TeamsCreate",
        "tags": [
          "rbac"
        ],
        "summary": "Teams Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              },
              "example": {
                "name": "string",
                "description": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_by": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name",
                    "created_by"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "created_by": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/teams/{id}": {
      "delete": {
        "operationId": "TeamsDelete",
        "tags": [
          "rbac"
        ],
        "summary": "Teams Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "TeamsGet",
        "tags": [
          "rbac"
        ],
        "summary": "Teams Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_by": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name",
                    "created_by"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "created_by": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "TeamsUpdate",
        "tags": [
          "rbac"
        ],
        "summary": "Teams Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "example": {
                "name": "string",
                "description": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "created_by": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workspace_id",
                    "name",
                    "created_by"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "name": "string",
                  "description": "string",
                  "created_by": "00000000-0000-0000-0000-000000000000",
                  "created_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/transfer-ownership": {
      "post": {
        "operationId": "TransferOwnership",
        "tags": [
          "workspace"
        ],
        "summary": "Transfer Ownership",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "targetUserId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "targetUserId"
                ]
              },
              "example": {
                "targetUserId": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "previousOwnerId": {
                      "type": "string"
                    },
                    "newOwnerId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "success",
                    "previousOwnerId",
                    "newOwnerId"
                  ]
                },
                "example": {
                  "success": true,
                  "previousOwnerId": "string",
                  "newOwnerId": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/usage": {
      "get": {
        "operationId": "GetWorkspaceUsage",
        "tags": [
          "workspace"
        ],
        "summary": "Get Workspace Usage",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "current",
                "previous",
                "trailing_30d"
              ],
              "default": "current"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "period_start": {
                      "type": "string"
                    },
                    "period_end": {
                      "type": "string"
                    },
                    "ai_operations": {
                      "type": "integer"
                    },
                    "ai_operations_limit": {
                      "type": "integer"
                    },
                    "records": {
                      "type": "integer"
                    },
                    "records_limit": {
                      "type": "integer"
                    },
                    "storage_gb": {
                      "type": "number"
                    },
                    "storage_limit_gb": {
                      "type": "integer"
                    },
                    "integrations": {
                      "type": "integer"
                    },
                    "integrations_limit": {
                      "type": "integer"
                    },
                    "workflows": {
                      "type": "integer"
                    },
                    "workflows_limit": {
                      "type": "integer"
                    },
                    "environments": {
                      "type": "integer"
                    },
                    "environments_limit": {
                      "type": "integer"
                    },
                    "overage_state": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "period_start",
                    "period_end",
                    "ai_operations",
                    "ai_operations_limit",
                    "records",
                    "records_limit",
                    "storage_gb",
                    "storage_limit_gb",
                    "integrations",
                    "integrations_limit",
                    "workflows",
                    "workflows_limit",
                    "environments",
                    "environments_limit",
                    "overage_state"
                  ]
                },
                "example": {
                  "period_start": "string",
                  "period_end": "string",
                  "ai_operations": 0,
                  "ai_operations_limit": 0,
                  "records": 0,
                  "records_limit": 0,
                  "storage_gb": 0,
                  "storage_limit_gb": 0,
                  "integrations": 0,
                  "integrations_limit": 0,
                  "workflows": 0,
                  "workflows_limit": 0,
                  "environments": 0,
                  "environments_limit": 0,
                  "overage_state": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/users": {
      "get": {
        "operationId": "WorkspaceUsersList",
        "tags": [
          "rbac"
        ],
        "summary": "Workspace Users List",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "firebase_uid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firebase_uid_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "display_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "display_name_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invited_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "invited_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "invited_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "accepted_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "accepted_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "is_active",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "last_login_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "last_login_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "last_login_ip",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "last_login_ip_contains",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "last_active_at_gte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "last_active_at_lte",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "id",
                "workspace_id",
                "firebase_uid",
                "email",
                "display_name",
                "role",
                "invited_by",
                "invited_at",
                "accepted_at",
                "is_active",
                "status",
                "last_login_at",
                "last_login_ip",
                "created_at",
                "last_active_at"
              ],
              "default": "created_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "firebase_uid": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "display_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "role": {
                      "type": "string"
                    },
                    "invited_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "invited_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "accepted_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_active": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "last_login_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "last_login_ip": {
                      "type": "string",
                      "nullable": true
                    },
                    "notification_preferences": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "last_active_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id",
                    "firebase_uid",
                    "email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "firebase_uid": "string",
                  "email": "string",
                  "display_name": "string",
                  "role": "string",
                  "invited_by": "00000000-0000-0000-0000-000000000000",
                  "invited_at": "string",
                  "accepted_at": "string",
                  "is_active": true,
                  "status": "string",
                  "last_login_at": "string",
                  "last_login_ip": "string",
                  "notification_preferences": {},
                  "created_at": "string",
                  "last_active_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "post": {
        "operationId": "WorkspaceUsersCreate",
        "tags": [
          "rbac"
        ],
        "summary": "Workspace Users Create",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "role": {
                    "type": "string"
                  },
                  "notification_preferences": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "email"
                ]
              },
              "example": {
                "email": "string",
                "display_name": "string",
                "role": "string",
                "notification_preferences": {}
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "firebase_uid": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "display_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "role": {
                      "type": "string"
                    },
                    "invited_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "invited_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "accepted_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_active": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "last_login_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "last_login_ip": {
                      "type": "string",
                      "nullable": true
                    },
                    "notification_preferences": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "last_active_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id",
                    "firebase_uid",
                    "email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "firebase_uid": "string",
                  "email": "string",
                  "display_name": "string",
                  "role": "string",
                  "invited_by": "00000000-0000-0000-0000-000000000000",
                  "invited_at": "string",
                  "accepted_at": "string",
                  "is_active": true,
                  "status": "string",
                  "last_login_at": "string",
                  "last_login_ip": "string",
                  "notification_preferences": {},
                  "created_at": "string",
                  "last_active_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/users/{id}": {
      "delete": {
        "operationId": "WorkspaceUsersDelete",
        "tags": [
          "rbac"
        ],
        "summary": "Workspace Users Delete",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:delete"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:delete"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "204": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "operationId": "WorkspaceUsersGet",
        "tags": [
          "rbac"
        ],
        "summary": "Workspace Users Get",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:read"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "firebase_uid": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "display_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "role": {
                      "type": "string"
                    },
                    "invited_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "invited_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "accepted_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_active": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "last_login_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "last_login_ip": {
                      "type": "string",
                      "nullable": true
                    },
                    "notification_preferences": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "last_active_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id",
                    "firebase_uid",
                    "email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "firebase_uid": "string",
                  "email": "string",
                  "display_name": "string",
                  "role": "string",
                  "invited_by": "00000000-0000-0000-0000-000000000000",
                  "invited_at": "string",
                  "accepted_at": "string",
                  "is_active": true,
                  "status": "string",
                  "last_login_at": "string",
                  "last_login_ip": "string",
                  "notification_preferences": {},
                  "created_at": "string",
                  "last_active_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "put": {
        "operationId": "WorkspaceUsersUpdate",
        "tags": [
          "rbac"
        ],
        "summary": "Workspace Users Update",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "role": {
                    "type": "string"
                  },
                  "notification_preferences": {
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "example": {
                "email": "string",
                "display_name": "string",
                "role": "string",
                "notification_preferences": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "firebase_uid": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "display_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "role": {
                      "type": "string"
                    },
                    "invited_by": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "invited_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "accepted_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_active": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "last_login_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "last_login_ip": {
                      "type": "string",
                      "nullable": true
                    },
                    "notification_preferences": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "last_active_at": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "workspace_id",
                    "firebase_uid",
                    "email"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "workspace_id": "00000000-0000-0000-0000-000000000000",
                  "firebase_uid": "string",
                  "email": "string",
                  "display_name": "string",
                  "role": "string",
                  "invited_by": "00000000-0000-0000-0000-000000000000",
                  "invited_at": "string",
                  "accepted_at": "string",
                  "is_active": true,
                  "status": "string",
                  "last_login_at": "string",
                  "last_login_ip": "string",
                  "notification_preferences": {},
                  "created_at": "string",
                  "last_active_at": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/users/{id}/approve-invite": {
      "post": {
        "operationId": "ApproveInvite",
        "tags": [
          "workspace"
        ],
        "summary": "Approve Invite",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "email": {
                      "type": "string",
                      "nullable": true
                    },
                    "status": {
                      "type": "string"
                    },
                    "delivery": {
                      "type": "string",
                      "nullable": true
                    },
                    "tempPassword": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "status"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "email": "string",
                  "status": "string",
                  "delivery": "string",
                  "tempPassword": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    },
    "/v1/workspace/users/{id}/reject-invite": {
      "post": {
        "operationId": "RejectInvite",
        "tags": [
          "workspace"
        ],
        "summary": "Reject Invite",
        "security": [
          {
            "ApiKeyAuth": [
              "workspace:write"
            ]
          },
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "workspace:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Unique key to make this request safe to retry — the first response is cached and replayed for any retry with the same key (24h)."
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "status"
                  ]
                },
                "example": {
                  "id": "00000000-0000-0000-0000-000000000000",
                  "status": "string"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Sustained request ceiling for your tier (requests/minute).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests remaining in the current burst budget.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "UTC epoch seconds when the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Limit": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Draft RateLimit header — seconds until the budget refills to full.",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "servers": [
        {
          "url": "https://e1dk9.wiremockapi.cloud",
          "description": "Sandbox mock (part 1)"
        },
        {
          "url": "https://api.inferrex.com",
          "description": "Production"
        }
      ]
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Workspace-scoped API key. Each key carries a subset of the 79 scopes (see x-api-scopes); a call needs the scope its operation declares."
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Firebase ID token (interactive sessions)."
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "Machine-to-machine client-credentials flow for agents (shares the API-key scope catalog).",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://api.inferrex.com/v1/oauth/token",
            "scopes": {
              "alert-rules:delete": "delete access to alert-rules",
              "alert-rules:read": "read access to alert-rules",
              "alert-rules:write": "write access to alert-rules",
              "approval-policies:delete": "delete access to approval-policies",
              "approval-policies:read": "read access to approval-policies",
              "approval-policies:write": "write access to approval-policies",
              "archival:read": "read access to archival",
              "archival:write": "write access to archival",
              "billing:read": "read access to billing",
              "billing:write": "write access to billing",
              "canonical-proposals:read": "read access to canonical-proposals",
              "canonical-proposals:write": "write access to canonical-proposals",
              "circuit-breaker-policies:delete": "delete access to circuit-breaker-policies",
              "circuit-breaker-policies:read": "read access to circuit-breaker-policies",
              "circuit-breaker-policies:write": "write access to circuit-breaker-policies",
              "circuit-breakers:read": "read access to circuit-breakers",
              "circuit-breakers:write": "write access to circuit-breakers",
              "connections:delete": "delete access to connections",
              "connections:read": "read access to connections",
              "connections:write": "write access to connections",
              "field-authority-rules:delete": "delete access to field-authority-rules",
              "field-authority-rules:read": "read access to field-authority-rules",
              "field-authority-rules:write": "write access to field-authority-rules",
              "gamification:read": "read access to gamification",
              "golden-records:read": "read access to golden-records",
              "golden-records:write": "write access to golden-records",
              "initial-loads:read": "read access to initial-loads",
              "initial-loads:write": "write access to initial-loads",
              "intelligence:delete": "delete access to intelligence",
              "intelligence:read": "read access to intelligence",
              "intelligence:write": "write access to intelligence",
              "jobs:read": "read access to jobs",
              "library:read": "read access to library",
              "library:write": "write access to library",
              "licence:write": "write access to licence",
              "mappings:read": "read access to mappings",
              "mappings:write": "write access to mappings",
              "monitoring:read": "read access to monitoring",
              "notifications:read": "read access to notifications",
              "notifications:write": "write access to notifications",
              "oauth:write": "write access to oauth",
              "onboarding:read": "read access to onboarding",
              "onboarding:write": "write access to onboarding",
              "operation-scopes:delete": "delete access to operation-scopes",
              "operation-scopes:read": "read access to operation-scopes",
              "operation-scopes:write": "write access to operation-scopes",
              "parallel-run-discrepancies:read": "read access to parallel-run-discrepancies",
              "pipeline-events:read": "read access to pipeline-events",
              "pipelines:read": "read access to pipelines",
              "pipelines:write": "write access to pipelines",
              "platform-config:read": "read access to platform-config",
              "platform-config:write": "write access to platform-config",
              "platform-value-scores:read": "read access to platform-value-scores",
              "platform-value-scores:write": "write access to platform-value-scores",
              "portal:read": "read access to portal",
              "portal:write": "write access to portal",
              "restoration-requests:read": "read access to restoration-requests",
              "restoration-requests:write": "write access to restoration-requests",
              "retention-policies:delete": "delete access to retention-policies",
              "retention-policies:read": "read access to retention-policies",
              "retention-policies:write": "write access to retention-policies",
              "retrieve:read": "read access to retrieve",
              "schema:read": "read access to schema",
              "settings:delete": "delete access to settings",
              "settings:read": "read access to settings",
              "settings:write": "write access to settings",
              "terms:read": "read access to terms",
              "terms:write": "write access to terms",
              "unified:delete": "delete access to unified",
              "unified:read": "read access to unified",
              "unified:write": "write access to unified",
              "workflow-runs:read": "read access to workflow-runs",
              "workflow-runs:write": "write access to workflow-runs",
              "workflows:delete": "delete access to workflows",
              "workflows:read": "read access to workflows",
              "workflows:write": "write access to workflows",
              "workspace:delete": "delete access to workspace",
              "workspace:read": "read access to workspace",
              "workspace:write": "write access to workspace"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Stable machine-readable error code"
          },
          "message": {
            "type": "string",
            "description": "Human-readable description"
          },
          "retryable": {
            "type": "boolean",
            "description": "Whether retrying the same request unchanged could succeed (transient vs. client error)."
          },
          "docs_url": {
            "type": "string",
            "format": "uri",
            "description": "Docs anchor for this error code — an agent can self-correct without a human."
          },
          "requestId": {
            "type": "string",
            "description": "Correlation id for support"
          }
        },
        "required": [
          "error",
          "message",
          "retryable",
          "docs_url"
        ]
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": "bad_request",
              "message": "Invalid request",
              "retryable": false,
              "docs_url": "https://inferrex.com/docs/errors#bad_request"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid credentials",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": "unauthorized",
              "message": "Missing or invalid credentials",
              "retryable": false,
              "docs_url": "https://inferrex.com/docs/errors#unauthorized"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Not permitted",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": "forbidden",
              "message": "Not permitted",
              "retryable": false,
              "docs_url": "https://inferrex.com/docs/errors#forbidden"
            }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": "not_found",
              "message": "Resource not found",
              "retryable": false,
              "docs_url": "https://inferrex.com/docs/errors#not_found"
            }
          }
        }
      },
      "RateLimited": {
        "description": "Rate limit exceeded — retry after the period in the Retry-After header",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": "rate_limited",
              "message": "Rate limit exceeded — retry after the period in the Retry-After header",
              "retryable": true,
              "docs_url": "https://inferrex.com/docs/errors#rate_limited"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "description": "Sustained request ceiling for your tier (requests/minute).",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Remaining": {
            "description": "Requests remaining in the current burst budget.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Reset": {
            "description": "UTC epoch seconds when the budget refills to full.",
            "schema": {
              "type": "integer"
            }
          },
          "RateLimit-Limit": {
            "description": "Draft RateLimit header — same value as X-RateLimit-Limit.",
            "schema": {
              "type": "integer"
            }
          },
          "RateLimit-Remaining": {
            "description": "Draft RateLimit header — same value as X-RateLimit-Remaining.",
            "schema": {
              "type": "integer"
            }
          },
          "RateLimit-Reset": {
            "description": "Draft RateLimit header — seconds until the budget refills to full.",
            "schema": {
              "type": "integer"
            }
          },
          "Retry-After": {
            "description": "Seconds to wait before retrying.",
            "schema": {
              "type": "integer"
            }
          }
        }
      }
    }
  }
}
