From 65586b7e785a3725ef52e58ca0ec6d05e7403c0b Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 2 Apr 2025 13:00:51 -0700
Subject: [PATCH] openapi: long-running operations

---
 openapi.yaml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/openapi.yaml b/openapi.yaml
index bb8bebc..7bc07a9 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -10,6 +10,8 @@ tags:
     description: Mapfix operations
   - name: Maps
     description: Map queries
+  - name: Operations
+    description: Long-running operations
   - name: Session
     description: Session queries
   - name: Submissions
@@ -435,6 +437,27 @@ paths:
             application/json:
               schema:
                 $ref: "#/components/schemas/Error"
+  /operations/{OperationID}:
+    get:
+      summary: Retrieve operation with ID
+      operationId: getOperation
+      tags:
+        - Operations
+      parameters:
+        - $ref: '#/components/parameters/OperationID'
+      responses:
+        "200":
+          description: Successful response
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/Operation"
+        default:
+          description: General Error
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/Error"
   /submissions:
     get:
       summary: Get list of submissions
@@ -1033,6 +1056,14 @@ components:
       schema:
         type: integer
         format: int64
+    OperationID:
+      name: OperationID
+      in: path
+      required: true
+      description: The unique identifier for a long-running operation.
+      schema:
+        type: integer
+        format: int32
     SubmissionID:
       name: SubmissionID
       in: path
@@ -1214,6 +1245,34 @@ components:
         TargetAssetID:
           type: integer
           format: int64
+    Operation:
+      required:
+      - OperationID
+      - Date
+      - Owner
+      - Status
+      - StatusMessage
+      - Path
+      type: object
+      properties:
+        OperationID:
+          type: integer
+          format: int32
+        Date:
+          type: integer
+          format: int64
+        Owner:
+          type: integer
+          format: int64
+        Status:
+          type: integer
+          format: int32
+        StatusMessage:
+          type: string
+          maxLength: 256
+        Path:
+          type: string
+          maxLength: 128
     Submission:
       required:
       - ID