{
  "components": {
    "schemas": {
      "CacheOperationResult": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "$ref": "#/components/schemas/GenerationReference"
          },
          "kind": {
            "const": "cache",
            "title": "Kind",
            "type": "string"
          },
          "previous_good": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GenerationReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_components": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Updated Components",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "active",
          "previous_good",
          "updated_components"
        ],
        "title": "CacheOperationResult",
        "type": "object"
      },
      "CatalogComponentResult": {
        "additionalProperties": false,
        "properties": {
          "candidate_immutable_ref": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Immutable Ref"
          },
          "candidate_manifest_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Manifest Digest"
          },
          "component_id": {
            "title": "Component Id",
            "type": "string"
          },
          "current_immutable_ref": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Immutable Ref"
          },
          "state": {
            "enum": [
              "current",
              "candidate_available",
              "requires_lock_refresh",
              "unavailable",
              "unattested"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "component_id",
          "state"
        ],
        "title": "CatalogComponentResult",
        "type": "object"
      },
      "CatalogOperationResult": {
        "additionalProperties": false,
        "properties": {
          "catalog_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Digest"
          },
          "catalog_mode": {
            "default": "source-reviewed/bundled",
            "enum": [
              "source-reviewed/bundled",
              "signed"
            ],
            "title": "Catalog Mode",
            "type": "string"
          },
          "checked_at": {
            "title": "Checked At",
            "type": "string"
          },
          "components": {
            "items": {
              "$ref": "#/components/schemas/CatalogComponentResult"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Components",
            "type": "array"
          },
          "kind": {
            "const": "catalog",
            "title": "Kind",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/CatalogToolResult"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Tools",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "checked_at",
          "tools",
          "components"
        ],
        "title": "CatalogOperationResult",
        "type": "object"
      },
      "CatalogToolResult": {
        "additionalProperties": false,
        "properties": {
          "candidate_manifest_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Manifest Digest"
          },
          "candidate_release_id": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Release Id"
          },
          "candidate_version": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Version"
          },
          "installed_version": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Installed Version"
          },
          "state": {
            "enum": [
              "current",
              "candidate_available",
              "unavailable",
              "unattested"
            ],
            "title": "State",
            "type": "string"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": [
          "tool_id",
          "state"
        ],
        "title": "CatalogToolResult",
        "type": "object"
      },
      "GenerationReference": {
        "additionalProperties": false,
        "properties": {
          "generation_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Generation Id",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          }
        },
        "required": [
          "generation_id",
          "manifest_sha256"
        ],
        "title": "GenerationReference",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "OperationActivity": {
        "additionalProperties": false,
        "properties": {
          "bytes_completed": {
            "anyOf": [
              {
                "maximum": 4294967296.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Completed"
          },
          "bytes_total": {
            "anyOf": [
              {
                "maximum": 4294967296.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Total"
          },
          "component_id": {
            "title": "Component Id",
            "type": "string"
          },
          "component_index": {
            "maximum": 32.0,
            "minimum": 1.0,
            "title": "Component Index",
            "type": "integer"
          },
          "component_total": {
            "maximum": 32.0,
            "minimum": 1.0,
            "title": "Component Total",
            "type": "integer"
          }
        },
        "required": [
          "component_id",
          "component_index",
          "component_total"
        ],
        "title": "OperationActivity",
        "type": "object"
      },
      "OperationRecord": {
        "additionalProperties": false,
        "properties": {
          "activity": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OperationActivity"
              },
              {
                "type": "null"
              }
            ]
          },
          "attempt": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Attempt",
            "type": "integer"
          },
          "cancel_requested_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancel Requested At"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_detail": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Detail"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "kind": {
            "enum": [
              "catalog_check",
              "cache_update",
              "cache_rollback",
              "cache_reconcile"
            ],
            "title": "Kind",
            "type": "string"
          },
          "last_activity_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Activity At"
          },
          "max_attempts": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Max Attempts",
            "type": "integer"
          },
          "operation_id": {
            "format": "uuid",
            "title": "Operation Id",
            "type": "string"
          },
          "preparation_budget": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PreparationBudget"
              },
              {
                "type": "null"
              }
            ]
          },
          "reconciliation_budget": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecoveryBudget"
              },
              {
                "type": "null"
              }
            ]
          },
          "reconciliation_intent": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReconciliationIntent"
              },
              {
                "type": "null"
              }
            ]
          },
          "reconciliation_target": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecoveryTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "request_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Request Digest",
            "type": "string"
          },
          "requested_components": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Requested Components",
            "type": "array"
          },
          "result": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "cache": "#/components/schemas/CacheOperationResult",
                    "catalog": "#/components/schemas/CatalogOperationResult",
                    "reconciliation": "#/components/schemas/ReconciliationOperationResult"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CatalogOperationResult"
                  },
                  {
                    "$ref": "#/components/schemas/CacheOperationResult"
                  },
                  {
                    "$ref": "#/components/schemas/ReconciliationOperationResult"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Result"
          },
          "schema_version": {
            "enum": [
              1,
              2,
              3
            ],
            "title": "Schema Version",
            "type": "integer"
          },
          "stage": {
            "title": "Stage",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "enum": [
              "queued",
              "running",
              "cancelling",
              "completed",
              "failed",
              "cancelled"
            ],
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "workflow_deadline_exceeded": {
            "default": false,
            "title": "Workflow Deadline Exceeded",
            "type": "boolean"
          }
        },
        "required": [
          "schema_version",
          "operation_id",
          "request_digest",
          "kind",
          "requested_components",
          "status",
          "stage",
          "attempt",
          "max_attempts",
          "created_at",
          "updated_at"
        ],
        "title": "OperationRecord",
        "type": "object"
      },
      "OperationRequest": {
        "additionalProperties": false,
        "properties": {
          "attempt": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Attempt",
            "type": "integer"
          },
          "catalog_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Digest"
          },
          "kind": {
            "enum": [
              "catalog_check",
              "cache_update",
              "cache_rollback",
              "cache_reconcile"
            ],
            "title": "Kind",
            "type": "string"
          },
          "max_attempts": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Max Attempts",
            "type": "integer"
          },
          "operation_id": {
            "format": "uuid",
            "title": "Operation Id",
            "type": "string"
          },
          "preparation_budget": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PreparationBudget"
              },
              {
                "type": "null"
              }
            ]
          },
          "reconciliation_budget": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecoveryBudget"
              },
              {
                "type": "null"
              }
            ]
          },
          "reconciliation_target": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecoveryTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "request_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Request Digest",
            "type": "string"
          },
          "requested_components": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Requested Components",
            "type": "array"
          },
          "schema_version": {
            "enum": [
              1,
              2,
              3
            ],
            "title": "Schema Version",
            "type": "integer"
          }
        },
        "required": [
          "schema_version",
          "operation_id",
          "request_digest",
          "kind",
          "requested_components",
          "attempt",
          "max_attempts"
        ],
        "title": "OperationRequest",
        "type": "object"
      },
      "PreparationBudget": {
        "additionalProperties": false,
        "properties": {
          "deadline_at": {
            "title": "Deadline At",
            "type": "string"
          },
          "issued_at": {
            "title": "Issued At",
            "type": "string"
          },
          "preparation_id": {
            "title": "Preparation Id",
            "type": "string"
          },
          "schema_version": {
            "enum": [
              1,
              2,
              3,
              4
            ],
            "title": "Schema Version",
            "type": "integer"
          }
        },
        "required": [
          "schema_version",
          "preparation_id",
          "issued_at",
          "deadline_at"
        ],
        "title": "PreparationBudget",
        "type": "object"
      },
      "ReconciliationIntent": {
        "additionalProperties": false,
        "properties": {
          "cache_result": {
            "$ref": "#/components/schemas/CacheOperationResult"
          },
          "original_completed_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Original Completed Sha256",
            "type": "string"
          },
          "original_finished_at": {
            "title": "Original Finished At",
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/ReconciliationOperationResult"
          }
        },
        "required": [
          "original_completed_sha256",
          "original_finished_at",
          "cache_result",
          "result"
        ],
        "title": "ReconciliationIntent",
        "type": "object"
      },
      "ReconciliationOperationResult": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "$ref": "#/components/schemas/GenerationReference"
          },
          "kind": {
            "const": "reconciliation",
            "title": "Kind",
            "type": "string"
          },
          "original_operation_id": {
            "format": "uuid",
            "title": "Original Operation Id",
            "type": "string"
          },
          "original_record_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Original Record Sha256",
            "type": "string"
          },
          "original_request_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Original Request Digest",
            "type": "string"
          },
          "original_workflow_deadline_exceeded": {
            "title": "Original Workflow Deadline Exceeded",
            "type": "boolean"
          },
          "previous_good": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GenerationReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "verified_at": {
            "title": "Verified At",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "active",
          "previous_good",
          "original_operation_id",
          "original_request_digest",
          "original_record_sha256",
          "original_workflow_deadline_exceeded",
          "verified_at"
        ],
        "title": "ReconciliationOperationResult",
        "type": "object"
      },
      "RecoveryBudget": {
        "additionalProperties": false,
        "properties": {
          "deadline_at": {
            "title": "Deadline At",
            "type": "string"
          },
          "issued_at": {
            "title": "Issued At",
            "type": "string"
          },
          "purpose": {
            "const": "readonly_cache_reconciliation",
            "title": "Purpose",
            "type": "string"
          },
          "recovery_id": {
            "title": "Recovery Id",
            "type": "string"
          },
          "schema_version": {
            "const": 1,
            "title": "Schema Version",
            "type": "integer"
          }
        },
        "required": [
          "schema_version",
          "purpose",
          "recovery_id",
          "issued_at",
          "deadline_at"
        ],
        "title": "RecoveryBudget",
        "type": "object"
      },
      "RecoveryGeneration": {
        "additionalProperties": false,
        "properties": {
          "generation_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Generation Id",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          }
        },
        "required": [
          "generation_id",
          "manifest_sha256"
        ],
        "title": "RecoveryGeneration",
        "type": "object"
      },
      "RecoveryTarget": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "$ref": "#/components/schemas/RecoveryGeneration"
          },
          "attempt": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Attempt",
            "type": "integer"
          },
          "operation_id": {
            "title": "Operation Id",
            "type": "string"
          },
          "original_job_id": {
            "exclusiveMinimum": 0.0,
            "title": "Original Job Id",
            "type": "integer"
          },
          "original_job_revision": {
            "exclusiveMinimum": 0.0,
            "title": "Original Job Revision",
            "type": "integer"
          },
          "pointer_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Pointer Sha256",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "request_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Request Digest",
            "type": "string"
          }
        },
        "required": [
          "operation_id",
          "request_digest",
          "attempt",
          "record_sha256",
          "original_job_id",
          "original_job_revision",
          "pointer_sha256",
          "active"
        ],
        "title": "RecoveryTarget",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      }
    },
    "securitySchemes": {}
  },
  "info": {
    "description": "Static source preview reference. No server or executable console is provided. Broad source contracts remain broad; runtime checks and middleware are described separately.",
    "title": "Internal updater protocol",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/healthz": {
      "get": {
        "operationId": "updater-get-healthz",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Healthz Healthz Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Healthz",
        "tags": [
          "Updater"
        ],
        "x-audience": {
          "kind": "internal",
          "label": "Private service protocol. No public or third-party integration authority.",
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_main.py#L109"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "36976ad5dd9ccd082b6bf69e7f725771e1f07954df09a01bce4ef94a5cd18d8a",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_main.py#L109"
        },
        "x-source-errors": [],
        "x-stability": "Internal protocol; unsupported for external integration"
      }
    },
    "/operations": {
      "post": {
        "operationId": "updater-post-operations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OperationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationRecord"
                }
              }
            },
            "description": "OK"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "summary": "Create operation",
        "tags": [
          "Updater"
        ],
        "x-audience": {
          "kind": "internal",
          "label": "Private service protocol. No public or third-party integration authority.",
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L39"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "663b6e7ce283888187cc9148b2a20f40670bbb87bdb00450c32484fe1874dbeb",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L39"
        },
        "x-source-errors": [
          {
            "detail": "operation_conflict",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L43",
            "status": 409
          },
          {
            "detail": "updater_capacity",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L45",
            "status": 503
          },
          {
            "detail": "operation_rejected",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L47",
            "status": 422
          }
        ],
        "x-stability": "Internal protocol; unsupported for external integration"
      }
    },
    "/operations/{operation_id}": {
      "delete": {
        "operationId": "updater-delete-operations-operation-id",
        "parameters": [
          {
            "in": "path",
            "name": "operation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Operation Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-KodeSec-Request-Digest",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Kodesec-Request-Digest"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Keep the operation identity and collect bounded, reviewed diagnostics. See source-linked error catalog."
          }
        },
        "summary": "Cancel operation",
        "tags": [
          "Updater"
        ],
        "x-audience": {
          "kind": "internal",
          "label": "Private service protocol. No public or third-party integration authority.",
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L88"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "663b6e7ce283888187cc9148b2a20f40670bbb87bdb00450c32484fe1874dbeb",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L88"
        },
        "x-source-errors": [
          {
            "detail": "request_digest_required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L93",
            "status": 422
          },
          {
            "detail": "operation_missing",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L100",
            "status": 404
          },
          {
            "detail": "operation_conflict",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L102",
            "status": 409
          },
          {
            "detail": "operation_ledger_invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L104",
            "status": 500
          }
        ],
        "x-stability": "Internal protocol; unsupported for external integration"
      },
      "get": {
        "operationId": "updater-get-operations-operation-id",
        "parameters": [
          {
            "in": "path",
            "name": "operation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Operation Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-KodeSec-Request-Digest",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Kodesec-Request-Digest"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Keep the operation identity and collect bounded, reviewed diagnostics. See source-linked error catalog."
          }
        },
        "summary": "Get operation",
        "tags": [
          "Updater"
        ],
        "x-audience": {
          "kind": "internal",
          "label": "Private service protocol. No public or third-party integration authority.",
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L72"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "663b6e7ce283888187cc9148b2a20f40670bbb87bdb00450c32484fe1874dbeb",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L72"
        },
        "x-source-errors": [
          {
            "detail": "request_digest_required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L77",
            "status": 422
          },
          {
            "detail": "operation_missing",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L81",
            "status": 404
          },
          {
            "detail": "operation_conflict",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L83",
            "status": 409
          },
          {
            "detail": "operation_ledger_invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L85",
            "status": 500
          }
        ],
        "x-stability": "Internal protocol; unsupported for external integration"
      }
    },
    "/operations/{operation_id}/reconciliation-preview": {
      "get": {
        "operationId": "updater-get-operations-operation-id-reconciliation-preview",
        "parameters": [
          {
            "in": "path",
            "name": "operation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Operation Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-KodeSec-Request-Digest",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Kodesec-Request-Digest"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Reconciliation Preview Operations  Operation Id  Reconciliation Preview Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "summary": "Reconciliation preview",
        "tags": [
          "Updater"
        ],
        "x-audience": {
          "kind": "internal",
          "label": "Private service protocol. No public or third-party integration authority.",
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L53"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "663b6e7ce283888187cc9148b2a20f40670bbb87bdb00450c32484fe1874dbeb",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L53"
        },
        "x-source-errors": [
          {
            "detail": "request_digest_required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L58",
            "status": 422
          },
          {
            "detail": "operation_missing",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L63",
            "status": 404
          },
          {
            "detail": "reconciliation_target_changed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L65",
            "status": 409
          },
          {
            "detail": "reconciliation_preview_deadline",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L67",
            "status": 503
          },
          {
            "detail": "reconciliation_not_available",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/services/scanner/kodesec_scanner/updater_routes.py#L69",
            "status": 409
          }
        ],
        "x-stability": "Internal protocol; unsupported for external integration"
      }
    }
  },
  "x-source": {
    "commit": "bccff297ea36ba46f1af1f3849fa233b66c72ad3",
    "repository": "https://github.com/lomolabs/lomo-codesecurity",
    "version": "0.1.0"
  }
}
