{
  "openapi": "3.1.1",
  "info": {
    "title": "Itemra Customer API",
    "description": "Tenant-scoped inventory and warehouse operations for Itemra customer integrations.",
    "termsOfService": "https://itemra.io/terms",
    "contact": {
      "name": "Itemra Support",
      "url": "https://itemra.io/"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.itemra.io/",
      "description": "Configured Itemra Customer API endpoint"
    }
  ],
  "paths": {
    "/v1/imports/kinds": {
      "get": {
        "tags": [
          "Imports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `imports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportKind"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportKind"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportKind"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/imports/jobs": {
      "post": {
        "tags": [
          "Imports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nSubmission limit: 20 requests per 60 seconds by default, independently partitioned per customer API key and shared across public submission endpoints.\n\nRequired API key scope: `imports:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "kind",
                  "duplicateStrategy",
                  "file"
                ],
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string"
                  },
                  "duplicateStrategy": {
                    "type": "string"
                  },
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "Location": {
                "description": "Relative URL of the queued import job to poll.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/imports/jobs/{id}": {
      "get": {
        "tags": [
          "Imports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `imports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImportJob"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/imports/jobs/{id}/errors": {
      "get": {
        "tags": [
          "Imports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `imports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportRowError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportRowError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiImportRowError"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/attachments": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `attachments:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "targetKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAttachment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/attachments/upload": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `attachments:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "TargetKind": {
                    "type": "string"
                  },
                  "TargetId": {
                    "type": "string"
                  },
                  "File": {
                    "$ref": "#/components/schemas/IFormFile"
                  },
                  "FileKind": {
                    "type": "string"
                  },
                  "PageCount": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/attachments/{id}/download-url": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `attachments:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachmentDownloadUrl"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachmentDownloadUrl"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachmentDownloadUrl"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/attachments/{id}": {
      "delete": {
        "tags": [
          "Attachments"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `attachments:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/attachments/links": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `attachments:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAttachmentLinkRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAttachmentLinkRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAttachmentLinkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAttachment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/audit/events": {
      "get": {
        "tags": [
          "Audit"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `audit:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAuditEvent"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAuditEvent"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAuditEvent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/barcodes": {
      "get": {
        "tags": [
          "Labels"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `labels:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "payload",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "qr"
            }
          },
          {
            "name": "widthMm",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "heightMm",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "image/svg+xml": { },
              "application/problem+json": { }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "image/svg+xml": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetItemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateBomRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateBomRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateBomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/builds": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceStockRecordId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomBuildProvenance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomBuildProvenance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomBuildProvenance"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/revisions": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomRevisionSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomRevisionSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiBomRevisionSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/revisions/compare": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromRevisionId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toRevisionId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionCompareResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionCompareResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionCompareResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/revisions/{revisionId}": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomRevisionDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/flat": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomFlatExpansion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomFlatExpansion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomFlatExpansion"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/coverage": {
      "get": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "includeIncoming",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomCoverage"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomCoverage"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomCoverage"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/approve": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveBomRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveBomRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveBomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/revisions/draft": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRevisionDraftRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRevisionDraftRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBomRevisionDraftRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/archive": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/build": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBuildKitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBuildKitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBuildKitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBuildKitResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBuildKitResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBuildKitResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/unbuild": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUnbuildKitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUnbuildKitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUnbuildKitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnbuildKitResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnbuildKitResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnbuildKitResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/boms/{id}/unarchive": {
      "post": {
        "tags": [
          "Boms"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `boms:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBomDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/conditions": {
      "get": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConditionState"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConditionState"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConditionState"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateConditionStateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateConditionStateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateConditionStateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/conditions/{id}": {
      "put": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateConditionStateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateConditionStateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateConditionStateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/conditions/{id}/restore": {
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConditionState"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/containers/nested": {
      "get": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "rootLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerTreeNode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerTreeNode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerTreeNode"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/containers/{id}/history": {
      "get": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerHistoryEntry"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerHistoryEntry"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerHistoryEntry"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks": {
      "get": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "assignedToUserId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scheduledFromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "scheduledToUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "onlyOverdue",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCountTaskSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCountTaskSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCountTaskSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCountTaskRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCountTaskRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCountTaskRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}": {
      "get": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/start": {
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountTaskDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/lines/{lineId}": {
      "put": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertCountLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertCountLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertCountLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/lines/found": {
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAddFoundCountLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAddFoundCountLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAddFoundCountLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/submit": {
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSubmitCountResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSubmitCountResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSubmitCountResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/review/lines/{lineId}": {
      "put": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReviewCountLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReviewCountLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReviewCountLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCountLine"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/approve": {
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveCountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveCountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiApproveCountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiApproveCountResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiApproveCountResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiApproveCountResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/counting/tasks/{id}/reject": {
      "post": {
        "tags": [
          "Counting"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRejectCountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRejectCountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRejectCountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRejectCountResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRejectCountResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRejectCountResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/custom-fields": {
      "get": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "item"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinition"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinition"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinition"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/custom-fields/admin": {
      "get": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinitionAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinitionAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCustomFieldDefinitionAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCustomFieldDefinitionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCustomFieldDefinitionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateCustomFieldDefinitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/custom-fields/admin/{id}": {
      "put": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateCustomFieldDefinitionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateCustomFieldDefinitionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateCustomFieldDefinitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/custom-fields/admin/{id}/unarchive": {
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/cycle-count-rules": {
      "get": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCycleCountRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCycleCountRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCycleCountRule"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/cycle-count-rules/{id}": {
      "put": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCycleCountRuleUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCycleCountRule"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/settings/cycle-count-rules/{id}/run-now": {
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `counting:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRunCycleCountRuleResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRunCycleCountRuleResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRunCycleCountRuleResult"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/events": {
      "get": {
        "tags": [
          "Events"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `events:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "afterEventId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiIntegrationEvent"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiIntegrationEvent"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiIntegrationEvent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/exports/kinds": {
      "get": {
        "tags": [
          "Exports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `exports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportKind"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportKind"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportKind"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/exports/jobs": {
      "get": {
        "tags": [
          "Exports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `exports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportJob"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportJob"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiExportJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Exports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nSubmission limit: 20 requests per 60 seconds by default, independently partitioned per customer API key and shared across public submission endpoints.\n\nRequired API key scope: `exports:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateExportJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateExportJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateExportJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/exports/jobs/{id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `exports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportJob"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/exports/jobs/{id}/download": {
      "get": {
        "tags": [
          "Exports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `exports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportDownloadResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportDownloadResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiExportDownloadResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items": {
      "post": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}": {
      "put": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiItemUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/categories": {
      "post": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/categories/{id}": {
      "put": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/categories/{id}/reparent": {
      "post": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryReparentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryReparentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCategoryReparentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/categories/{id}/restore": {
      "post": {
        "tags": [
          "Categories"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `categories:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCategory"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/locations": {
      "post": {
        "tags": [
          "Locations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Locations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLocationSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLocationSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLocationSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/locations/{id}": {
      "put": {
        "tags": [
          "Locations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLocationUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Locations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Locations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLocationDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/containers": {
      "post": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentContainerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiContainerSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/containers/{id}": {
      "put": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/containers/{id}/move": {
      "post": {
        "tags": [
          "Containers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `containers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerMoveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerMoveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiContainerMoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiContainerDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/adjustments": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAdjustStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAdjustStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAdjustStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockAdjustmentResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockAdjustmentResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockAdjustmentResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/cost-corrections": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectStockCostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectStockCostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectStockCostRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectStockCostResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectStockCostResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectStockCostResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/movements": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `movements:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMoveStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMoveStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMoveStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockMoveResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockMoveResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockMoveResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/quarantines": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiQuarantineStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiQuarantineStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiQuarantineStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiQuarantineStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiQuarantineStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiQuarantineStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/quarantine-releases": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReleaseQuarantineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReleaseQuarantineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReleaseQuarantineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReleaseQuarantineResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReleaseQuarantineResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReleaseQuarantineResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/receiving/receipts": {
      "post": {
        "tags": [
          "Receiving"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `receiving:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/receiving/putaways": {
      "post": {
        "tags": [
          "Receiving"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `receiving:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPutawayStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPutawayStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPutawayStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPutawayStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPutawayStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPutawayStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/issues": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiIssueStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiIssueStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiIssueStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiIssueStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiIssueStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiIssueStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/consumptions": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiConsumeStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiConsumeStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiConsumeStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConsumeStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConsumeStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiConsumeStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/returns": {
      "post": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReturnStockRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReturnStockRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReturnStockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReturnStockResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReturnStockResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReturnStockResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/movements/{id}/reversal": {
      "post": {
        "tags": [
          "Movements"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `movements:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReverseMovementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReverseMovementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReverseMovementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReverseMovementResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReverseMovementResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReverseMovementResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/movements/{id}/correction": {
      "post": {
        "tags": [
          "Movements"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `movements:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectMovementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectMovementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCorrectMovementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectMovementResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectMovementResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCorrectMovementResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock": {
      "get": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "containerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ownership",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeSubtree",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockRecord"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/{id}": {
      "get": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockRecord"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/summary": {
      "get": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockSummary"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/stock/availability": {
      "get": {
        "tags": [
          "Stock"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `stock:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "itemId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockUnitSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockUnitSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockUnitSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/movements": {
      "get": {
        "tags": [
          "Movements"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `movements:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "actorUserId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "containerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reason",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hasNote",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "batchId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ownership",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovement"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovement"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovement"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/movements/{id}": {
      "get": {
        "tags": [
          "Movements"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `movements:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMovementDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMovementDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMovementDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/resolve": {
      "post": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveItemsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveItemsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveItemsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiResolvedItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiResolvedItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiResolvedItem"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/bulk": {
      "patch": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBulkUpdateItemsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBulkUpdateItemsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiBulkUpdateItemsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBulkUpdateItemsResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBulkUpdateItemsResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiBulkUpdateItemsResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}/variants": {
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateVariantRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateVariantRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}/putaway-suggestions": {
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `receiving:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "qty",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPutawaySuggestion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPutawaySuggestion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPutawaySuggestion"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/variants/{variantId}": {
      "put": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateVariantRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateVariantRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}/relationships": {
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemRelationship"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemRelationship"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemRelationship"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateItemRelationshipRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateItemRelationshipRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateItemRelationshipRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemRelationship"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemRelationship"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiItemRelationship"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}/alternates-with-stock": {
      "get": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double",
              "default": 1
            }
          },
          {
            "name": "includeEngineering",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemAlternateWithStock"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemAlternateWithStock"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiItemAlternateWithStock"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/items/{id}/relationships/{relationshipId}": {
      "delete": {
        "tags": [
          "Items"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `items:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationshipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/labels/render": {
      "post": {
        "tags": [
          "Labels"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `labels:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLabelRenderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLabelRenderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLabelRenderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelRenderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelRenderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelRenderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/label-templates": {
      "get": {
        "tags": [
          "Labels"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `labels:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "targetType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLabelTemplate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLabelTemplate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLabelTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/label-templates/{id}": {
      "get": {
        "tags": [
          "Labels"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `labels:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelTemplate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelTemplate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiLabelTemplate"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/manufacturers": {
      "get": {
        "tags": [
          "Manufacturers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `manufacturers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiManufacturerSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiManufacturerSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiManufacturerSummary"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Manufacturers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `manufacturers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/manufacturers/{id}": {
      "get": {
        "tags": [
          "Manufacturers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `manufacturers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Manufacturers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `manufacturers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiManufacturerUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiManufacturerDetail"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Manufacturers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `manufacturers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/movements/history": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "containerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batchId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reason",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementHistoryReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementHistoryReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementHistoryReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/movements/rollup": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "containerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batchId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reason",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementRollupReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementRollupReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMovementRollupReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/notes": {
      "get": {
        "tags": [
          "Notes"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `notes:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "targetKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Notes"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `notes:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/notes/by-kind": {
      "post": {
        "tags": [
          "Notes"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `notes:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiNotesByKindRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiNotesByKindRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiNotesByKindRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiNote"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/notes/{id}": {
      "patch": {
        "tags": [
          "Notes"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `notes:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiNote"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Notes"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `notes:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists": {
      "get": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "sourceKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPickListSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPickListSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPickListSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePickListRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePickListRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePickListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreatePickListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreatePickListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreatePickListResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}": {
      "get": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/start": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiStartPickListRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiStartPickListRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiStartPickListRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/lines/{lineId}/pick": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPickLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPickLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiPickLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/lines/{lineId}/short": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiShortPickLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiShortPickLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiShortPickLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/lines/{lineId}/substitute": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSubstitutePickLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSubstitutePickLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSubstitutePickLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/lines/{lineId}/skip": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSkipPickLineRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSkipPickLineRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSkipPickLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/pick-lists/{id}/complete": {
      "post": {
        "tags": [
          "Picking"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `picking:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCompletePickListRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCompletePickListRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCompletePickListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPickListDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "owner",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "startDateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiProjectUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/status": {
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiChangeProjectStatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiChangeProjectStatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiChangeProjectStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/archive": {
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/unarchive": {
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/usage-report": {
      "get": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bomId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "buildQuantity",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectUsageReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectUsageReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectUsageReport"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/boms": {
      "get": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectBomLink"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectBomLink"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiProjectBomLink"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `projects:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLinkProjectBomRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLinkProjectBomRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLinkProjectBomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomLink"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomLink"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomLink"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/boms/{linkId}/reserve-covered": {
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/projects/{id}/boms/{linkId}/reserve-missing": {
      "post": {
        "tags": [
          "Projects"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiProjectBomReservationResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders/reminders": {
      "post": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendPurchaseOrderReminderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders/{id}/receive": {
      "post": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `receiving:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/sites/{siteId}/reorder-rules/{ruleId}": {
      "put": {
        "tags": [
          "SiteReorderRules"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "siteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateSiteReorderRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateSiteReorderRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateSiteReorderRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "SiteReorderRules"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "siteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/sites/{siteId}/reorder-rules/copy-from": {
      "post": {
        "tags": [
          "SiteReorderRules"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "siteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCopySiteReorderRulesResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders": {
      "post": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePurchaseOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePurchaseOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreatePurchaseOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPurchaseOrderSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPurchaseOrderSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPurchaseOrderSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders/{id}": {
      "put": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdatePurchaseOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdatePurchaseOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdatePurchaseOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders/{id}/send": {
      "post": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/purchase-orders/{id}/cancel": {
      "post": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiCancelPurchaseOrderRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiCancelPurchaseOrderRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiCancelPurchaseOrderRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiPurchaseOrderDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/sites/{siteId}/reorder-rules": {
      "post": {
        "tags": [
          "SiteReorderRules"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "siteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSiteReorderRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSiteReorderRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSiteReorderRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSiteReorderRule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "SiteReorderRules"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "siteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSiteReorderRule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSiteReorderRule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSiteReorderRule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/fx-rates": {
      "get": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "base",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/purchasing/reorder-suggestions": {
      "get": {
        "tags": [
          "Purchasing"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `purchasing:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "threshold",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double",
              "default": 10
            }
          },
          {
            "name": "windowDays",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 30
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "siteId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReorderSuggestion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReorderSuggestion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReorderSuggestion"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/purchasing/po-status": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPoStatusReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPoStatusReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPoStatusReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/purchasing/supplier-performance": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierPerformanceReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierPerformanceReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierPerformanceReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/purchasing/price-history": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPriceHistoryReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPriceHistoryReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiPriceHistoryReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/purchasing/order-frequency": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiOrderFrequencyReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiOrderFrequencyReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiOrderFrequencyReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reason-codes": {
      "get": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "movementKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReasonCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReasonCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReasonCode"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReasonCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReasonCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReasonCodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reason-codes/{id}": {
      "put": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateReasonCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateReasonCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateReasonCodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reason-codes/{id}/restore": {
      "post": {
        "tags": [
          "Settings"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReasonCode"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/fx-rates": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "base",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/fx-rates": {
      "get": {
        "tags": [
          "Currency"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "base",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiFxRate"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reservations": {
      "get": {
        "tags": [
          "Reservations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "targetKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reservedByUserId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "olderThanUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "newerThanUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "expiringBeforeUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReservation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReservation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiReservation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Reservations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReservationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReservationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateReservationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreateReservationResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreateReservationResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCreateReservationResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reservations/{id}": {
      "get": {
        "tags": [
          "Reservations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reservations/{id}/release": {
      "post": {
        "tags": [
          "Reservations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiReleaseReservationRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiReleaseReservationRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiReleaseReservationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reservations/{id}/extend": {
      "post": {
        "tags": [
          "Reservations"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reservations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiExtendReservationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiExtendReservationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiExtendReservationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReservation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/scans/resolve": {
      "post": {
        "tags": [
          "Scanning"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `search:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveScanRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveScanRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiResolveScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiResolveScanResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiResolveScanResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiResolveScanResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `search:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kinds",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSearchResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSearchResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSearchResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedToKind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedToId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSerialUnitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSerialUnitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateSerialUnitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/by-serial/{serial}": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "serial",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/events": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitEvent"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitEvent"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSerialUnitEvent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/checkout": {
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckoutSerialUnitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckoutSerialUnitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckoutSerialUnitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/check-in": {
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckInSerialUnitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckInSerialUnitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCheckInSerialUnitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSerialUnitDetail"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/reminder": {
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendSerialUnitReminderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendSerialUnitReminderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendSerialUnitReminderResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/maintenance/schedules": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceSchedule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceSchedule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceSchedule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertMaintenanceScheduleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertMaintenanceScheduleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpsertMaintenanceScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceSchedule"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceSchedule"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceSchedule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/maintenance/schedules/{scheduleId}": {
      "delete": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scheduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/serial-units/{id}/maintenance/records": {
      "get": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiMaintenanceRecord"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "SerialUnits"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `serial-units:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRecordMaintenanceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRecordMaintenanceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiRecordMaintenanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMaintenanceRecord"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/current": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCurrentStockReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCurrentStockReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiCurrentStockReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/by-location": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByLocationReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByLocationReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByLocationReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/lagerstatus": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLagerstatusReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLagerstatusReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiLagerstatusReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/by-category": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByCategoryReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByCategoryReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByCategoryReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/valuation": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "asOf",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockValuationReportResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockValuationReportResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiStockValuationReportResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/by-manufacturer": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByManufacturerReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByManufacturerReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStockByManufacturerReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/dead-stock": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiDeadStockReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiDeadStockReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiDeadStockReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/stale": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStaleInventoryReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStaleInventoryReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiStaleInventoryReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock/unplaced": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnplacedItemReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnplacedItemReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnplacedItemReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock-analytics/turnover": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTurnoverReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTurnoverReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTurnoverReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock-analytics/aging": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAgingReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAgingReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAgingReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock-analytics/abc": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "aThresholdPercent",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "bThresholdPercent",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAbcReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAbcReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiAbcReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/reports/stock-analytics/confidence": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `reports:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConfidenceReportItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConfidenceReportItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiConfidenceReportItem"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "preferred",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/{id}": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierDetail"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/{id}/archive": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/{id}/unarchive": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/{id}/performance": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierPerformance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierPerformance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierPerformance"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/{id}/item-links": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierItemLink"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierItemLink"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiSupplierItemLink"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/suppliers/item-links/{linkId}": {
      "put": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSupplierItemLinkUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSupplierItemLink"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Suppliers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `suppliers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/tags": {
      "get": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTag"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTag"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTag"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateTagRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateTagRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTag"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTag"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTag"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/tags/admin": {
      "get": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTagAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTagAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTagAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/tags/admin/{id}": {
      "put": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateTagRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateTagRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/tags/admin/{id}/restore": {
      "post": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/tags/admin/{id}/merge": {
      "post": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMergeTagsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMergeTagsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiMergeTagsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTagAdmin"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "involvingLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "overdueBeforeUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTransferSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTransferSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiTransferSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers/in-transit-stats": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "involvingLocationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "overdueAfterDays",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 7
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferInTransitStats"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferInTransitStats"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferInTransitStats"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers/{id}": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiTransferDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers/send": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiSendTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendTransferResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendTransferResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiSendTransferResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers/{id}/receive": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiReceiveTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveTransferResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveTransferResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiReceiveTransferResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/transfers/{id}/cancel": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `transfers:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCancelTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCancelTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCancelTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCancelTransferResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCancelTransferResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiCancelTransferResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/units": {
      "get": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnitOfMeasure"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnitOfMeasure"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiUnitOfMeasure"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateUnitOfMeasureRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateUnitOfMeasureRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateUnitOfMeasureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/units/{id}": {
      "put": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateUnitOfMeasureRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateUnitOfMeasureRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateUnitOfMeasureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/units/{id}/restore": {
      "post": {
        "tags": [
          "Taxonomy"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `taxonomy:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/vehicles": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiVehicle"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiVehicle"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiVehicle"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/vehicles/my": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/vehicles/{id}/assignment": {
      "patch": {
        "tags": [
          "Vehicles"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `locations:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAssignVehicleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAssignVehicleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiAssignVehicleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiVehicle"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/event-types": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookEventType"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookEventType"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookEventType"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/subscriptions": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookSubscription"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookSubscription"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookSubscription"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateWebhookSubscriptionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateWebhookSubscriptionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateWebhookSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/subscriptions/{id}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateWebhookSubscriptionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateWebhookSubscriptionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateWebhookSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSubscription"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/subscriptions/{id}/rotate-secret": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookSecretResponse"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/subscriptions/{id}/test-deliveries": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiTestWebhookDeliveryRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiTestWebhookDeliveryRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/PublicApiTestWebhookDeliveryRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDelivery"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDelivery"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDelivery"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/deliveries": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:read`. Errors use ProblemDetails with stable `code` and `traceId` fields.",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookDelivery"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookDelivery"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiListResponseOfPublicApiWebhookDelivery"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    },
    "/v1/webhooks/subscriptions/{subscriptionId}/deliveries/{deliveryId}/replay": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "description": "Rate limit: 1200 requests per 60 seconds by default, partitioned per customer API key. Deployments can tune this limit. When exceeded, the API returns `429 Too Many Requests` with a `Retry-After` header and the `customer-api.rate-limit.exceeded` problem code.\n\nRequired API key scope: `webhooks:write`. Errors use ProblemDetails with stable `code` and `traceId` fields.\n\nThis write is idempotent and requires the `Idempotency-Key` header.",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required for public API write requests. Reuse the same key to retry the same request safely; a different body with the same key returns a conflict problem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDeliveryQueued"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDeliveryQueued"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiWebhookDeliveryQueued"
                }
              }
            }
          },
          "429": {
            "description": "`Too Many Requests`. The customer API rate limit was exceeded. Check the `Retry-After` response header before retrying."
          }
        },
        "security": [
          {
            "customerApiKey": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "JsonElement": { },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiAbcReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "categoryId",
          "categoryPath",
          "unit",
          "movementQuantity",
          "cumulativeShare",
          "classification"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "movementQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "cumulativeShare": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "classification": {
            "type": "string"
          }
        }
      },
      "PublicApiAddFoundCountLineRequest": {
        "required": [
          "itemId",
          "variantId",
          "unit",
          "countedQty",
          "stockRecordId",
          "notes"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "countedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "stockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiAdjustStockRequest": {
        "required": [
          "sourceStockRecordId",
          "direction",
          "delta",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "delta": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reason": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiAgingReportItem": {
        "required": [
          "bucket",
          "minDays",
          "maxDays",
          "itemCount",
          "neverMovedCount",
          "onHand",
          "unit"
        ],
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string"
          },
          "minDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "neverMovedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          }
        }
      },
      "PublicApiApproveBomRequest": {
        "type": "object",
        "properties": {
          "supersedesBomId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiApproveCountRequest": {
        "required": [
          "notes"
        ],
        "type": "object",
        "properties": {
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "acknowledgeDrift": {
            "type": "boolean",
            "default": false
          },
          "driftVersion": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiApproveCountResult": {
        "required": [
          "taskId",
          "status",
          "movementsEmitted",
          "varianceValue",
          "completedAt"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "movementsEmitted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "varianceValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiAssignVehicleRequest": {
        "required": [
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiAttachment": {
        "required": [
          "id",
          "targetKind",
          "targetId",
          "fileName",
          "contentType",
          "sizeBytes",
          "fileKind",
          "sourceKind",
          "sourceUrl",
          "pageCount",
          "status",
          "createdAt",
          "completedAt",
          "isPrimary",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "sizeBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fileKind": {
            "type": "string"
          },
          "sourceKind": {
            "type": "string"
          },
          "sourceUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "pageCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiAttachmentDownloadUrl": {
        "required": [
          "url",
          "expiresAt"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiAttachmentLinkRequest": {
        "required": [
          "targetKind",
          "targetId",
          "displayName",
          "url"
        ],
        "type": "object",
        "properties": {
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "fileKind": {
            "type": [
              "null",
              "string"
            ]
          },
          "contentType": {
            "type": [
              "null",
              "string"
            ]
          },
          "pageCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiAuditActor": {
        "required": [
          "userId",
          "name"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiAuditEvent": {
        "required": [
          "id",
          "occurredAt",
          "kind",
          "subjectKind",
          "subjectId",
          "subjectLabel",
          "actor",
          "reason",
          "hasChanges"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "kind": {
            "type": "string"
          },
          "subjectKind": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "subjectLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "actor": {
            "$ref": "#/components/schemas/PublicApiAuditActor"
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "hasChanges": {
            "type": "boolean"
          }
        }
      },
      "PublicApiBomBuildProvenance": {
        "required": [
          "batchId",
          "bomId",
          "bomRevisionId",
          "bomRevisionNumber",
          "bomRevisionVersion",
          "destinationStockRecordId",
          "builtQuantity",
          "remainingQuantity",
          "builtAt"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "bomRevisionId": {
            "type": "string"
          },
          "bomRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bomRevisionVersion": {
            "type": "string"
          },
          "destinationStockRecordId": {
            "type": "string"
          },
          "builtQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "remainingQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiBomCoverage": {
        "required": [
          "bomId",
          "bomCode",
          "bomName",
          "bomVersion",
          "buildQuantity",
          "includeIncoming",
          "computedAt",
          "totalLines",
          "coveredLines",
          "partialLines",
          "missingLines",
          "coveragePercent",
          "earliestBuildDate",
          "longestLeadTimeDays",
          "lines",
          "missingSubBomIds"
        ],
        "type": "object",
        "properties": {
          "bomId": {
            "type": "string"
          },
          "bomCode": {
            "type": "string"
          },
          "bomName": {
            "type": "string"
          },
          "bomVersion": {
            "type": "string"
          },
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "includeIncoming": {
            "type": "boolean"
          },
          "computedAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "coveredLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "partialLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "missingLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "coveragePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "earliestBuildDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "longestLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomCoverageLine"
            }
          },
          "missingSubBomIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "includesCostTotals": {
            "type": "boolean",
            "default": false
          },
          "totalShortfallCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiBomCoverageAlternate": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "available",
          "incoming"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiBomCoverageLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "perUnitQuantity",
          "needed",
          "unit",
          "onHand",
          "reserved",
          "available",
          "incoming",
          "effective",
          "shortfall",
          "status",
          "alternateItemIds",
          "alternates",
          "leadTimeDays",
          "preferredSupplierId",
          "preferredSupplierName",
          "sourceLineIds"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "perUnitQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "needed": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "effective": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "shortfall": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "status": {
            "type": "string"
          },
          "alternateItemIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "alternates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomCoverageAlternate"
            }
          },
          "leadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preferredSupplierId": {
            "type": [
              "null",
              "string"
            ]
          },
          "preferredSupplierName": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceLineIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "shortfallCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiBomDetail": {
        "required": [
          "id",
          "code",
          "name",
          "version",
          "description",
          "status",
          "targetItemId",
          "supersedesBomId",
          "notes",
          "lines",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "approvedAt",
          "approvedByUserId",
          "currentRevisionId",
          "currentRevisionNumber",
          "hasDraftChanges"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "targetItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supersedesBomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomLine"
            }
          },
          "createdByUserId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "approvedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "approvedByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentRevisionId": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hasDraftChanges": {
            "type": "boolean"
          }
        }
      },
      "PublicApiBomFlatExpansion": {
        "required": [
          "bomId",
          "lines",
          "missingSubBomIds"
        ],
        "type": "object",
        "properties": {
          "bomId": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomFlatLine"
            }
          },
          "missingSubBomIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiBomFlatLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "totalQuantity",
          "unit",
          "sourceLineIds"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "totalQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "sourceLineIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiBomLine": {
        "required": [
          "id",
          "lineNumber",
          "itemId",
          "itemName",
          "itemSku",
          "subBomId",
          "subBomCode",
          "subBomName",
          "quantity",
          "unit",
          "refDesignators",
          "alternateItemIds",
          "required",
          "note",
          "stableLineKey"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lineNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomName": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "refDesignators": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "alternateItemIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required": {
            "type": "boolean"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "stableLineKey": {
            "type": "string"
          }
        }
      },
      "PublicApiBomLineRequest": {
        "required": [
          "itemId",
          "subBomId",
          "quantity",
          "unit"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "refDesignators": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "alternateItemIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "required": {
            "type": "boolean",
            "default": true
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "stableLineKey": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiBomRevisionCompareResult": {
        "required": [
          "bomId",
          "fromRevisionId",
          "fromRevisionNumber",
          "toRevisionId",
          "toRevisionNumber",
          "headerChanges",
          "lineChanges"
        ],
        "type": "object",
        "properties": {
          "bomId": {
            "type": "string"
          },
          "fromRevisionId": {
            "type": "string"
          },
          "fromRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "toRevisionId": {
            "type": "string"
          },
          "toRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "headerChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomRevisionHeaderChange"
            }
          },
          "lineChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomRevisionLineChange"
            }
          }
        }
      },
      "PublicApiBomRevisionDetail": {
        "required": [
          "id",
          "bomId",
          "revisionNumber",
          "code",
          "name",
          "version",
          "description",
          "targetItemId",
          "notes",
          "lines",
          "approvedAt",
          "isCurrent",
          "isMigrationBaseline"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "revisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomRevisionLine"
            }
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "isMigrationBaseline": {
            "type": "boolean"
          }
        }
      },
      "PublicApiBomRevisionHeaderChange": {
        "required": [
          "field",
          "before",
          "after"
        ],
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "before": {
            "type": [
              "null",
              "string"
            ]
          },
          "after": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiBomRevisionLine": {
        "required": [
          "id",
          "stableLineKey",
          "lineNumber",
          "itemId",
          "itemName",
          "itemSku",
          "subBomId",
          "subBomRevisionId",
          "subBomCode",
          "subBomName",
          "quantity",
          "unit",
          "refDesignators",
          "alternateItemIds",
          "required",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "stableLineKey": {
            "type": "string"
          },
          "lineNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomRevisionId": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "subBomName": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "refDesignators": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "alternateItemIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required": {
            "type": "boolean"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiBomRevisionLineChange": {
        "required": [
          "stableLineKey",
          "changeType",
          "changedFields",
          "before",
          "after"
        ],
        "type": "object",
        "properties": {
          "stableLineKey": {
            "type": "string"
          },
          "changeType": {
            "type": "string"
          },
          "changedFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "before": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiBomRevisionLine"
              }
            ]
          },
          "after": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiBomRevisionLine"
              }
            ]
          }
        }
      },
      "PublicApiBomRevisionSummary": {
        "required": [
          "id",
          "bomId",
          "revisionNumber",
          "code",
          "name",
          "version",
          "approvedAt",
          "lineCount",
          "isCurrent",
          "isMigrationBaseline"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "revisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "isMigrationBaseline": {
            "type": "boolean"
          }
        }
      },
      "PublicApiBomSummary": {
        "required": [
          "id",
          "code",
          "name",
          "version",
          "status",
          "targetItemId",
          "lineCount",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "targetItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiBuildKitConsumedLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "quantity",
          "unit",
          "sourceStockRecordId",
          "movementId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "movementId": {
            "type": "string"
          }
        }
      },
      "PublicApiBuildKitRequest": {
        "required": [
          "buildQuantity",
          "destinationLocationId",
          "destinationContainerId",
          "note"
        ],
        "type": "object",
        "properties": {
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiBuildKitResult": {
        "required": [
          "batchId",
          "bomId",
          "kitItemId",
          "buildQuantity",
          "destinationStockRecordId",
          "destinationNewQty",
          "unit",
          "buildMovementId",
          "consumed",
          "bomRevisionId",
          "bomRevisionNumber",
          "bomRevisionVersion"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "kitItemId": {
            "type": "string"
          },
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "destinationStockRecordId": {
            "type": "string"
          },
          "destinationNewQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "buildMovementId": {
            "type": "string"
          },
          "consumed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBuildKitConsumedLine"
            }
          },
          "bomRevisionId": {
            "type": "string"
          },
          "bomRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bomRevisionVersion": {
            "type": "string"
          }
        }
      },
      "PublicApiBulkUpdateItemFailure": {
        "required": [
          "id",
          "code"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        }
      },
      "PublicApiBulkUpdateItemsRequest": {
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "clearCategory": {
            "type": "boolean",
            "default": false
          },
          "addTagIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "removeTagIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiBulkUpdateItemsResult": {
        "required": [
          "updated",
          "failed"
        ],
        "type": "object",
        "properties": {
          "updated": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "failed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBulkUpdateItemFailure"
            }
          }
        }
      },
      "PublicApiCancelPurchaseOrderRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCancelTransferRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCancelTransferResult": {
        "required": [
          "transferId",
          "status"
        ],
        "type": "object",
        "properties": {
          "transferId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiCategory": {
        "required": [
          "id",
          "name",
          "parentId",
          "path",
          "iconKey",
          "status",
          "childCount",
          "itemCount",
          "requiredCustomFieldKeys"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          },
          "path": {
            "type": "string"
          },
          "iconKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "childCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "requiredCustomFieldKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiCategoryCreateRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          },
          "iconKey": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCategoryReparentRequest": {
        "required": [
          "parentId"
        ],
        "type": "object",
        "properties": {
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCategoryUpdateRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "iconKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "requiredCustomFieldKeys": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiChangeProjectStatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiCheckInSerialUnitRequest": {
        "required": [
          "condition"
        ],
        "type": "object",
        "properties": {
          "condition": {
            "type": "string"
          },
          "damageNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "quarantine": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "PublicApiCheckoutSerialUnitRequest": {
        "required": [
          "assigneeKind",
          "assigneeId"
        ],
        "type": "object",
        "properties": {
          "assigneeKind": {
            "type": "string"
          },
          "assigneeId": {
            "type": "string"
          },
          "assigneeLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "dueBackAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "condition": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCompletePickListRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiConditionState": {
        "required": [
          "id",
          "key",
          "labelEn",
          "labelNb",
          "acceptsNewStock",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          },
          "acceptsNewStock": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiConfidenceReportItem": {
        "required": [
          "score",
          "itemCount",
          "sharePercent",
          "onHand",
          "unit"
        ],
        "type": "object",
        "properties": {
          "score": {
            "type": "string"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sharePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          }
        }
      },
      "PublicApiConsumeStockLine": {
        "required": [
          "itemId",
          "variantId",
          "quantity",
          "unit",
          "sourceStockRecordId",
          "lotId",
          "note"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiConsumeStockRequest": {
        "required": [
          "targetKind",
          "targetId",
          "targetLabel",
          "note",
          "sourceIssueBatchId",
          "lines"
        ],
        "type": "object",
        "properties": {
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "targetLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceIssueBatchId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiConsumeStockLine"
            }
          }
        }
      },
      "PublicApiConsumeStockResult": {
        "required": [
          "batchId",
          "targetKind",
          "targetId",
          "lineCount",
          "movementIds"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "movementIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiContainerCreateRequest": {
        "required": [
          "code",
          "type"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          },
          "parentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "parentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "initialQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiContainerDetail": {
        "required": [
          "id",
          "code",
          "label",
          "type",
          "parentLocationId",
          "parentContainerId",
          "childContainerCount",
          "stockRecordCount",
          "status",
          "capacity",
          "capacityUnit",
          "notes",
          "archivedAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          },
          "type": {
            "type": "string"
          },
          "parentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "parentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "childContainerCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stockRecordCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "type": "string"
          },
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "archivedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "initialQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "remainingQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "fragmentCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 0
          }
        }
      },
      "PublicApiContainerHistoryEntry": {
        "required": [
          "id",
          "containerId",
          "fromLocationId",
          "fromContainerId",
          "toLocationId",
          "toContainerId",
          "reason",
          "note",
          "occurredAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "containerId": {
            "type": "string"
          },
          "fromLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiContainerMoveRequest": {
        "type": "object",
        "properties": {
          "parentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "parentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiContainerSummary": {
        "required": [
          "id",
          "code",
          "label",
          "type",
          "parentLocationId",
          "parentContainerId",
          "childContainerCount",
          "stockRecordCount",
          "status",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          },
          "type": {
            "type": "string"
          },
          "parentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "parentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "childContainerCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stockRecordCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "initialQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "remainingQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiContainerTreeNode": {
        "required": [
          "id",
          "code",
          "label",
          "type",
          "status",
          "childContainerCount",
          "stockRecordCount",
          "children"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "childContainerCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stockRecordCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiContainerTreeNode"
            }
          }
        }
      },
      "PublicApiContainerUpdateRequest": {
        "required": [
          "code",
          "type"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "initialQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCopySiteReorderRulesRequest": {
        "required": [
          "sourceSiteId"
        ],
        "type": "object",
        "properties": {
          "sourceSiteId": {
            "type": "string"
          },
          "overwrite": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "PublicApiCopySiteReorderRulesResult": {
        "required": [
          "copied",
          "skipped"
        ],
        "type": "object",
        "properties": {
          "copied": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skipped": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiCorrectMovementRequest": {
        "required": [
          "correctedQuantity",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "correctedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reason": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCorrectMovementResult": {
        "required": [
          "movementId",
          "correctionOfMovementId",
          "direction",
          "delta"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "correctionOfMovementId": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "delta": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCorrectStockCostRequest": {
        "required": [
          "sourceStockRecordId",
          "unitCost",
          "costCurrency",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCorrectStockCostResult": {
        "required": [
          "movementId",
          "stockRecordId",
          "unitCost",
          "costCurrency",
          "stockValue"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "stockRecordId": {
            "type": "string"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCountLine": {
        "required": [
          "id",
          "stockRecordId",
          "itemId",
          "itemName",
          "variantId",
          "locationId",
          "locationName",
          "containerId",
          "unit",
          "expectedQty",
          "countedQty",
          "variance",
          "isFound",
          "notes",
          "movementId",
          "countedAt",
          "countedByUserId",
          "reviewDecision",
          "reasonCode",
          "overrideQty",
          "reviewNotes",
          "currentExpectedQty",
          "driftQty",
          "driftState",
          "correctionQty"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "stockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "expectedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "countedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "variance": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "isFound": {
            "type": "boolean"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "movementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "countedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "countedByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reviewDecision": {
            "type": "string"
          },
          "reasonCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "overrideQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reviewNotes": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentExpectedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "driftQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "driftState": {
            "type": [
              "null",
              "string"
            ]
          },
          "correctionQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCountScope": {
        "required": [
          "locationId",
          "locationPath",
          "recursive",
          "itemIds",
          "categoryIds",
          "includeArchived"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "recursive": {
            "type": "boolean"
          },
          "itemIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "includeArchived": {
            "type": "boolean"
          }
        }
      },
      "PublicApiCountTaskDetail": {
        "required": [
          "task",
          "lines",
          "driftVersion"
        ],
        "type": "object",
        "properties": {
          "task": {
            "$ref": "#/components/schemas/PublicApiCountTaskSummary"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCountLine"
            }
          },
          "driftVersion": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCountTaskSummary": {
        "required": [
          "id",
          "code",
          "kind",
          "status",
          "scope",
          "scheduledFor",
          "assignedToUserId",
          "assignedToUserName",
          "createdBy",
          "createdAt",
          "startedAt",
          "completedAt",
          "varianceValue",
          "freeze",
          "blind",
          "notes",
          "varianceThresholdUnits",
          "varianceThresholdValue",
          "reviewedAt",
          "reviewedByUserId",
          "reviewNotes"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/PublicApiCountScope"
          },
          "scheduledFor": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "assignedToUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "varianceValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "freeze": {
            "type": "boolean"
          },
          "blind": {
            "type": "boolean"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "varianceThresholdUnits": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "varianceThresholdValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reviewedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "reviewedByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reviewNotes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreateBomRequest": {
        "required": [
          "code",
          "name",
          "version"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supersedesBomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiBomLineRequest"
            }
          }
        }
      },
      "PublicApiCreateBomRevisionDraftRequest": {
        "required": [
          "version"
        ],
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          }
        }
      },
      "PublicApiCreateConditionStateRequest": {
        "required": [
          "key",
          "labelEn",
          "labelNb",
          "acceptsNewStock"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          },
          "acceptsNewStock": {
            "type": "boolean"
          }
        }
      },
      "PublicApiCreateCountTaskRequest": {
        "required": [
          "kind"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "scopeLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "scopeRecursive": {
            "type": "boolean",
            "default": false
          },
          "scopeItemIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "scopeCategoryIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "scopeIncludeArchived": {
            "type": "boolean",
            "default": false
          },
          "scheduledFor": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "assignedToUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "freeze": {
            "type": "boolean",
            "default": false
          },
          "blind": {
            "type": "boolean",
            "default": false
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "varianceThresholdUnits": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "varianceThresholdValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCreateCustomFieldDefinitionRequest": {
        "required": [
          "key",
          "scope",
          "categoryId",
          "kind",
          "required",
          "displayOrder",
          "label",
          "helpText",
          "options",
          "validation"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "kind": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "label": {
            "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
          },
          "helpText": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
              }
            ]
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldOption"
            }
          },
          "validation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldValidation"
              }
            ]
          }
        }
      },
      "PublicApiCreateExportJobRequest": {
        "required": [
          "kind",
          "format",
          "params"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "params": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiCreateItemRelationshipRequest": {
        "required": [
          "kind",
          "targetItemId"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "targetItemId": {
            "type": "string"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "confidence": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreateNoteRequest": {
        "required": [
          "targetKind",
          "targetId",
          "kind",
          "body"
        ],
        "type": "object",
        "properties": {
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        }
      },
      "PublicApiCreatePickListRequest": {
        "required": [
          "sourceKind",
          "sourceId",
          "sourceLabel",
          "sourcingStrategy",
          "autoReserve",
          "requirements",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceKind": {
            "type": "string"
          },
          "sourceId": {
            "type": "string"
          },
          "sourceLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourcingStrategy": {
            "type": "string"
          },
          "autoReserve": {
            "type": "boolean"
          },
          "requirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCreatePickListRequirement"
            }
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreatePickListRequirement": {
        "required": [
          "itemId",
          "variantId",
          "quantity",
          "unit",
          "note"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreatePickListResponse": {
        "required": [
          "pickList",
          "shortLineCount"
        ],
        "type": "object",
        "properties": {
          "pickList": {
            "$ref": "#/components/schemas/PublicApiPickListDetail"
          },
          "shortLineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiCreatePurchaseOrderRequest": {
        "required": [
          "supplierId",
          "currency",
          "expectedDate",
          "taxRate",
          "shippingAddress",
          "billingAddress",
          "notes",
          "lines"
        ],
        "type": "object",
        "properties": {
          "supplierId": {
            "type": "string"
          },
          "currency": {
            "type": [
              "null",
              "string"
            ]
          },
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "taxRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "shippingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "billingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPurchaseOrderLineInput"
            }
          }
        }
      },
      "PublicApiCreateReasonCodeRequest": {
        "required": [
          "movementKind",
          "key",
          "labelEn",
          "labelNb"
        ],
        "type": "object",
        "properties": {
          "movementKind": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          }
        }
      },
      "PublicApiCreateReservationRequest": {
        "required": [
          "itemId",
          "variantId",
          "quantity",
          "unit",
          "targetKind",
          "targetId",
          "targetLabel",
          "scope",
          "locationId",
          "containerId",
          "lotId",
          "expiresAt",
          "note"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "targetLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "scope": {
            "type": "string"
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "expiresAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreateReservationResult": {
        "required": [
          "reservation",
          "movementId"
        ],
        "type": "object",
        "properties": {
          "reservation": {
            "$ref": "#/components/schemas/PublicApiReservation"
          },
          "movementId": {
            "type": "string"
          }
        }
      },
      "PublicApiCreateSerialUnitRequest": {
        "required": [
          "itemId",
          "serial"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "condition": {
            "type": [
              "null",
              "string"
            ]
          },
          "purchaseDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "warrantyEndDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "acquisitionCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreateSiteReorderRuleRequest": {
        "required": [
          "itemId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "minStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "maxStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderPoint": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "preferredSupplierId": {
            "type": [
              "null",
              "string"
            ]
          },
          "active": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "PublicApiCreateTagRequest": {
        "required": [
          "displayLabel"
        ],
        "type": "object",
        "properties": {
          "displayLabel": {
            "type": "string"
          },
          "color": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCreateUnitOfMeasureRequest": {
        "required": [
          "value",
          "nameEn",
          "nameNb",
          "decimals"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "nameEn": {
            "type": "string"
          },
          "nameNb": {
            "type": "string"
          },
          "decimals": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiCreateVariantRequest": {
        "required": [
          "sku",
          "axes"
        ],
        "type": "object",
        "properties": {
          "sku": {
            "type": "string"
          },
          "axes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "unitOfMeasure": {
            "type": [
              "null",
              "string"
            ]
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcodes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "aliases": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiCreateWebhookSubscriptionRequest": {
        "required": [
          "url",
          "eventTypes"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiCurrentStockReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "categoryId",
          "categoryPath",
          "onHand",
          "reserved",
          "available",
          "unit",
          "locationCount",
          "primaryLocationId",
          "primaryLocationName",
          "unitCost",
          "costCurrency",
          "stockValue"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "locationCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "primaryLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "primaryLocationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCustomFieldDefinition": {
        "required": [
          "id",
          "key",
          "scope",
          "categoryId",
          "kind",
          "required",
          "displayOrder",
          "label",
          "helpText",
          "options",
          "validation"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "kind": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "label": {
            "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
          },
          "helpText": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
              }
            ]
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldOption"
            }
          },
          "validation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldValidation"
              }
            ]
          }
        }
      },
      "PublicApiCustomFieldDefinitionAdmin": {
        "required": [
          "id",
          "key",
          "scope",
          "categoryId",
          "kind",
          "required",
          "displayOrder",
          "label",
          "helpText",
          "options",
          "validation",
          "status",
          "usedOnCount",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "kind": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "label": {
            "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
          },
          "helpText": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
              }
            ]
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldOption"
            }
          },
          "validation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldValidation"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "usedOnCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiCustomFieldLocalizedText": {
        "required": [
          "en",
          "nb"
        ],
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "nb": {
            "type": "string"
          }
        }
      },
      "PublicApiCustomFieldOption": {
        "required": [
          "value",
          "label"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
          }
        }
      },
      "PublicApiCustomFieldValidation": {
        "required": [
          "min",
          "max",
          "minLength",
          "maxLength",
          "pattern"
        ],
        "type": "object",
        "properties": {
          "min": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "max": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "minLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pattern": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCycleCountCadenceRequest": {
        "required": [
          "kind"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "dayOfWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "dayOfMonth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "monthOffset": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "expression": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiCycleCountRule": {
        "required": [
          "id",
          "name",
          "enabled",
          "cadenceKind",
          "cadenceCron",
          "cadenceDescription",
          "taskKind",
          "scope",
          "assignmentStrategy",
          "assignedUserId",
          "assignedUserName",
          "taskPrefix",
          "freeze",
          "varianceThresholdUnits",
          "varianceThresholdValue",
          "nextRunAtUtc",
          "lastRunAtUtc",
          "lastGeneratedTaskId",
          "createdBy",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "cadenceKind": {
            "type": "string"
          },
          "cadenceCron": {
            "type": "string"
          },
          "cadenceDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "taskKind": {
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/PublicApiCycleCountScope"
          },
          "assignmentStrategy": {
            "type": "string"
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "taskPrefix": {
            "type": [
              "null",
              "string"
            ]
          },
          "freeze": {
            "type": "boolean"
          },
          "varianceThresholdUnits": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "varianceThresholdValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "nextRunAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastRunAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastGeneratedTaskId": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiCycleCountRuleUpsertRequest": {
        "required": [
          "name",
          "enabled",
          "cadence",
          "taskKind"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "cadence": {
            "$ref": "#/components/schemas/PublicApiCycleCountCadenceRequest"
          },
          "taskKind": {
            "type": "string"
          },
          "scopeLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "scopeRecursive": {
            "type": "boolean",
            "default": false
          },
          "scopeItemIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "scopeCategoryIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "scopeIncludeArchived": {
            "type": "boolean",
            "default": false
          },
          "assignmentStrategy": {
            "type": "string",
            "default": "any-qualified"
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "taskPrefix": {
            "type": [
              "null",
              "string"
            ]
          },
          "freeze": {
            "type": "boolean",
            "default": false
          },
          "varianceThresholdUnits": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "varianceThresholdValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiCycleCountScope": {
        "required": [
          "locationId",
          "locationPath",
          "recursive",
          "itemIds",
          "categoryIds",
          "includeArchived"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "recursive": {
            "type": "boolean"
          },
          "itemIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "includeArchived": {
            "type": "boolean"
          }
        }
      },
      "PublicApiDeadStockReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "onHand",
          "unit",
          "lastMovementAt",
          "daysSinceMovement"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "lastMovementAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "daysSinceMovement": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiExportDownloadResponse": {
        "required": [
          "url",
          "expiresAt"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiExportJob": {
        "required": [
          "id",
          "kind",
          "format",
          "status",
          "requestedByUserId",
          "createdAt",
          "startedAt",
          "completedAt",
          "sizeBytes",
          "rowCount",
          "errorCode",
          "errorMessage",
          "canDownload"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "requestedByUserId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "sizeBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "rowCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ]
          },
          "canDownload": {
            "type": "boolean"
          }
        }
      },
      "PublicApiExportKind": {
        "required": [
          "kind",
          "labelKey",
          "descriptionKey",
          "permission",
          "formats"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "labelKey": {
            "type": "string"
          },
          "descriptionKey": {
            "type": "string"
          },
          "permission": {
            "type": "string"
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiExtendReservationRequest": {
        "required": [
          "expiresAt"
        ],
        "type": "object",
        "properties": {
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiExternalId": {
        "required": [
          "sourceSystem",
          "externalId"
        ],
        "type": "object",
        "properties": {
          "sourceSystem": {
            "type": "string"
          },
          "externalId": {
            "type": "string"
          },
          "externalKey": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiFxRate": {
        "required": [
          "currency",
          "rate",
          "baseCurrency",
          "asOf",
          "fetchedAt"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "rate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "baseCurrency": {
            "type": "string"
          },
          "asOf": {
            "type": "string",
            "format": "date-time"
          },
          "fetchedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PublicApiImportField": {
        "required": [
          "key",
          "type",
          "required",
          "enumOptions",
          "referenceKind"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "enumOptions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "referenceKind": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiImportJob": {
        "required": [
          "id",
          "kind",
          "status",
          "totalRows",
          "processedRows",
          "created",
          "updated",
          "skipped",
          "failed",
          "createdAt",
          "startedAt",
          "finishedAt",
          "errorCode",
          "hasRowErrors"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "totalRows": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "processedRows": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "created": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "updated": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skipped": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "failed": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "finishedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "hasRowErrors": {
            "type": "boolean"
          }
        }
      },
      "PublicApiImportKind": {
        "required": [
          "kind",
          "targetFields",
          "uniqueBy",
          "duplicateStrategies"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "targetFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImportField"
            }
          },
          "uniqueBy": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "duplicateStrategies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiImportRowError": {
        "required": [
          "rowIndex",
          "field",
          "code"
        ],
        "type": "object",
        "properties": {
          "rowIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "field": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        }
      },
      "PublicApiIntegrationEvent": {
        "required": [
          "id",
          "type",
          "version",
          "occurredAt",
          "organizationId",
          "data"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "version": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "organizationId": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/JsonElement"
          }
        }
      },
      "PublicApiIssueStockLine": {
        "required": [
          "itemId",
          "variantId",
          "quantity",
          "unit",
          "sourceStockRecordId",
          "locationId",
          "containerId",
          "lotId",
          "note"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiIssueStockRequest": {
        "required": [
          "targetKind",
          "targetId",
          "targetLabel",
          "recipientName",
          "note",
          "sourcePickListId",
          "lines"
        ],
        "type": "object",
        "properties": {
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "targetLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "recipientName": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourcePickListId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiIssueStockLine"
            }
          }
        }
      },
      "PublicApiIssueStockResult": {
        "required": [
          "batchId",
          "targetKind",
          "targetId",
          "lineCount",
          "movementIds"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "movementIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiItemAlternateWithStock": {
        "required": [
          "relationshipId",
          "itemId",
          "sku",
          "name",
          "status",
          "mpn",
          "confidence",
          "onHand",
          "reserved",
          "available",
          "incoming",
          "coversRequested"
        ],
        "type": "object",
        "properties": {
          "relationshipId": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "confidence": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "coversRequested": {
            "type": "boolean"
          }
        }
      },
      "PublicApiItemDetail": {
        "required": [
          "id",
          "name",
          "sku",
          "mpn",
          "manufacturer",
          "manufacturerId",
          "manufacturerName",
          "description",
          "unitOfMeasure",
          "purchaseUnit",
          "purchaseToBaseFactor",
          "issueUnit",
          "issueToBaseFactor",
          "status",
          "barcodes",
          "aliases",
          "createdAt",
          "updatedAt",
          "parentItemId",
          "axes",
          "categoryId",
          "categoryPath",
          "tags",
          "customFields",
          "isSerialTracked",
          "requiresLot"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerName": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitOfMeasure": {
            "type": "string"
          },
          "purchaseUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "purchaseToBaseFactor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "issueUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "issueToBaseFactor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "status": {
            "type": "string"
          },
          "barcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "parentItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "axes": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiItemTag"
            }
          },
          "customFields": {
            "type": [
              "null",
              "object"
            ]
          },
          "isSerialTracked": {
            "type": "boolean"
          },
          "requiresLot": {
            "type": "boolean"
          },
          "standardCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          },
          "datasheets": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiAttachment"
            }
          }
        }
      },
      "PublicApiItemRelationship": {
        "required": [
          "kind",
          "id",
          "itemId",
          "sku",
          "name",
          "status",
          "mpn",
          "notes",
          "confidence"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "confidence": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiItemSummary": {
        "required": [
          "id",
          "name",
          "sku",
          "mpn",
          "manufacturer",
          "manufacturerId",
          "manufacturerName",
          "unitOfMeasure",
          "status",
          "updatedAt",
          "parentItemId",
          "isSerialTracked",
          "requiresLot",
          "categoryId",
          "categoryPath",
          "onHand",
          "reserved",
          "available",
          "lowStockState"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerName": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitOfMeasure": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "parentItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "isSerialTracked": {
            "type": "boolean"
          },
          "requiresLot": {
            "type": "boolean"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lowStockState": {
            "type": [
              "null",
              "string"
            ]
          },
          "standardCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiItemTag": {
        "required": [
          "id",
          "label",
          "color"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        }
      },
      "PublicApiItemUpsertRequest": {
        "required": [
          "name",
          "sku",
          "unitOfMeasure"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "unitOfMeasure": {
            "type": "string"
          },
          "mpn": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcodes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "aliases": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "tagIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "customFields": {
            "type": [
              "null",
              "object"
            ]
          },
          "standardCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "purchaseUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "purchaseToBaseFactor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "issueUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "issueToBaseFactor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "requiresLot": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "isSerialTracked": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "parentItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "axes": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiLabelField": {
        "required": [
          "bind",
          "x",
          "y",
          "width",
          "height",
          "fontSize",
          "fontWeight",
          "align",
          "fallback"
        ],
        "type": "object",
        "properties": {
          "bind": {
            "type": "string"
          },
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "y": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "width": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "height": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "fontSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "fontWeight": {
            "type": [
              "null",
              "string"
            ]
          },
          "align": {
            "type": [
              "null",
              "string"
            ]
          },
          "fallback": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiLabelLayout": {
        "required": [
          "kind",
          "cols",
          "rows",
          "gap"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "cols": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rows": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "gap": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiLabelPaper": {
        "required": [
          "width",
          "height",
          "marginTop",
          "marginRight",
          "marginBottom",
          "marginLeft"
        ],
        "type": "object",
        "properties": {
          "width": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "height": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "marginTop": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "marginRight": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "marginBottom": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "marginLeft": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiLabelRenderRequest": {
        "required": [
          "templateId",
          "targets"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string"
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiLabelRenderTarget"
            }
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "format": {
            "type": [
              "null",
              "string"
            ]
          },
          "blank": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "startSlot": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiLabelRenderResponse": {
        "required": [
          "format",
          "content",
          "pages"
        ],
        "type": "object",
        "properties": {
          "format": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "pages": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiLabelRenderTarget": {
        "required": [
          "kind",
          "id"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        }
      },
      "PublicApiLabelTemplate": {
        "required": [
          "id",
          "name",
          "targetType",
          "paper",
          "layout",
          "fields",
          "qrPayload",
          "customQrPayload",
          "isDefault",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "targetType": {
            "type": "string"
          },
          "paper": {
            "$ref": "#/components/schemas/PublicApiLabelPaper"
          },
          "layout": {
            "$ref": "#/components/schemas/PublicApiLabelLayout"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiLabelField"
            }
          },
          "qrPayload": {
            "type": "string"
          },
          "customQrPayload": {
            "type": [
              "null",
              "string"
            ]
          },
          "isDefault": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiLagerstatusReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "type",
          "unit",
          "totalQuantity",
          "reservedQuantity",
          "availableQuantity",
          "locationQuantities",
          "unitCost",
          "costCurrency",
          "stockValue",
          "itemStatus",
          "comment"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "totalQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reservedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "availableQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "locationQuantities": {
            "type": "object",
            "additionalProperties": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "itemStatus": {
            "type": [
              "null",
              "string"
            ]
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiLinkProjectBomRequest": {
        "required": [
          "bomId"
        ],
        "type": "object",
        "properties": {
          "bomId": {
            "type": "string"
          },
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 1
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiListResponseOfPublicApiAbcReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAbcReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiAgingReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAgingReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiAttachment": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAttachment"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiAuditEvent": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAuditEvent"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiBomBuildProvenance": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomBuildProvenance"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiBomRevisionSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomRevisionSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiBomSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiBomSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCategory": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCategory"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiConditionState": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiConditionState"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiConfidenceReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiConfidenceReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiContainerHistoryEntry": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiContainerHistoryEntry"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiContainerSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiContainerSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiContainerTreeNode": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiContainerTreeNode"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCountTaskSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCountTaskSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCurrentStockReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCurrentStockReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCustomFieldDefinition": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldDefinition"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCustomFieldDefinitionAdmin": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldDefinitionAdmin"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiCycleCountRule": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiCycleCountRule"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiDeadStockReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiDeadStockReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiExportJob": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiExportJob"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiExportKind": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiExportKind"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiFxRate": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiFxRate"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiImportKind": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImportKind"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiImportRowError": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImportRowError"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiIntegrationEvent": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiIntegrationEvent"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiItemAlternateWithStock": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiItemAlternateWithStock"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiItemDetail": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiItemDetail"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiItemRelationship": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiItemRelationship"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiItemSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiItemSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiLabelTemplate": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiLabelTemplate"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiLagerstatusReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiLagerstatusReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiLocationSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiLocationSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiMaintenanceRecord": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiMaintenanceRecord"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiMaintenanceSchedule": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiMaintenanceSchedule"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiManufacturerSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiManufacturerSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiMovement": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiMovement"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiMovementHistoryReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiMovementHistoryReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiMovementRollupReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiMovementRollupReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiNote": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiNote"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiOrderFrequencyReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiOrderFrequencyReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiPickListSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPickListSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiPoStatusReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPoStatusReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiPriceHistoryReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPriceHistoryReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiProjectBomLink": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiProjectBomLink"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiProjectSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiProjectSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiPurchaseOrderSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPurchaseOrderSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiPutawaySuggestion": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPutawaySuggestion"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiReasonCode": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReasonCode"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiReorderSuggestion": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReorderSuggestion"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiReservation": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReservation"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiResolvedItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiResolvedItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSearchResult": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSearchResult"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSerialUnitEvent": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSerialUnitEvent"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSerialUnitSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSerialUnitSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSiteReorderRule": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSiteReorderRule"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStaleInventoryReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStaleInventoryReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStockByCategoryReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockByCategoryReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStockByLocationReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockByLocationReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStockByManufacturerReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockByManufacturerReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStockRecord": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockRecord"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiStockUnitSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockUnitSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSupplierItemLink": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierItemLink"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSupplierPerformanceReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierPerformanceReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiSupplierSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiTag": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiTag"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiTagAdmin": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiTagAdmin"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiTransferSummary": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiTransferSummary"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiTurnoverReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiTurnoverReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiUnitOfMeasure": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiUnitOfMeasure"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiUnplacedItemReportItem": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiUnplacedItemReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiVehicle": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiVehicle"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiWebhookDelivery": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiWebhookDelivery"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiWebhookEventType": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiWebhookEventType"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiListResponseOfPublicApiWebhookSubscription": {
        "required": [
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiWebhookSubscription"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiLocationAttributes": {
        "required": [
          "esdSafe",
          "temperatureControlled",
          "temperatureMinC",
          "temperatureMaxC",
          "humidityControlled",
          "hazardous",
          "hazardousClasses",
          "secure",
          "restrictedAccess",
          "accessRoleIds",
          "weightLimitKg",
          "allowedItemTypes",
          "disallowedItemTags"
        ],
        "type": "object",
        "properties": {
          "esdSafe": {
            "type": "boolean"
          },
          "temperatureControlled": {
            "type": "boolean"
          },
          "temperatureMinC": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "temperatureMaxC": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "humidityControlled": {
            "type": "boolean"
          },
          "hazardous": {
            "type": "boolean"
          },
          "hazardousClasses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "secure": {
            "type": "boolean"
          },
          "restrictedAccess": {
            "type": "boolean"
          },
          "accessRoleIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "weightLimitKg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "allowedItemTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "disallowedItemTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiLocationDetail": {
        "required": [
          "id",
          "name",
          "code",
          "kind",
          "parentId",
          "notes",
          "isArchived",
          "attributes",
          "capacity",
          "capacityUnit",
          "occupancy",
          "createdAt",
          "updatedAt",
          "licensePlate",
          "assignedUserId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "isArchived": {
            "type": "boolean"
          },
          "attributes": {
            "$ref": "#/components/schemas/PublicApiLocationAttributes"
          },
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "occupancy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiLocationOccupancy"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "licensePlate": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiLocationOccupancy": {
        "required": [
          "capacity",
          "capacityUnit",
          "used",
          "percentage",
          "state"
        ],
        "type": "object",
        "properties": {
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": "string"
          },
          "used": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "state": {
            "type": "string"
          }
        }
      },
      "PublicApiLocationSummary": {
        "required": [
          "id",
          "name",
          "code",
          "kind",
          "parentId",
          "isArchived",
          "occupancy",
          "updatedAt",
          "licensePlate",
          "assignedUserId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          },
          "isArchived": {
            "type": "boolean"
          },
          "occupancy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiLocationOccupancy"
              }
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "licensePlate": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiLocationUpsertRequest": {
        "required": [
          "name",
          "code",
          "kind",
          "parentId",
          "notes",
          "attributes",
          "capacity",
          "capacityUnit",
          "licensePlate",
          "assignedUserId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "attributes": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiLocationAttributes"
              }
            ]
          },
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": [
              "null",
              "string"
            ]
          },
          "licensePlate": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiMaintenanceRecord": {
        "required": [
          "id",
          "serialUnitId",
          "scheduleId",
          "kind",
          "result",
          "completedAt",
          "certificateUrl",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serialUnitId": {
            "type": "string"
          },
          "scheduleId": {
            "type": [
              "null",
              "string"
            ]
          },
          "kind": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "certificateUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiMaintenanceSchedule": {
        "required": [
          "id",
          "serialUnitId",
          "kind",
          "cadenceEvery",
          "cadenceUnit",
          "lastCompletedAt",
          "nextDueAt",
          "notes",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serialUnitId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "cadenceEvery": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "cadenceUnit": {
            "type": "string"
          },
          "lastCompletedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "nextDueAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiManufacturerDetail": {
        "required": [
          "id",
          "name",
          "slug",
          "code",
          "website",
          "notes",
          "status",
          "itemCount",
          "externalIds",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "code": {
            "type": [
              "null",
              "string"
            ]
          },
          "website": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiManufacturerSummary": {
        "required": [
          "id",
          "name",
          "slug",
          "code",
          "website",
          "status",
          "itemCount",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "code": {
            "type": [
              "null",
              "string"
            ]
          },
          "website": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiManufacturerUpsertRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": [
              "null",
              "string"
            ]
          },
          "website": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "externalIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiExternalId"
            }
          }
        }
      },
      "PublicApiMergeTagsRequest": {
        "required": [
          "targetTagId"
        ],
        "type": "object",
        "properties": {
          "targetTagId": {
            "type": "string"
          }
        }
      },
      "PublicApiMovement": {
        "required": [
          "id",
          "kind",
          "at",
          "actorUserId",
          "actorUserName",
          "itemId",
          "itemName",
          "variantId",
          "quantity",
          "unit",
          "fromLocationId",
          "fromLocationPath",
          "fromContainerId",
          "fromContainerCode",
          "toLocationId",
          "toLocationPath",
          "toContainerId",
          "toContainerCode",
          "lotId",
          "lotCode",
          "serial",
          "reason",
          "note",
          "reference",
          "reversedByMovementId",
          "reversalOfMovementId",
          "batchId",
          "ownership",
          "ownerReference"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "at": {
            "type": "string",
            "format": "date-time"
          },
          "actorUserId": {
            "type": "string"
          },
          "actorUserName": {
            "type": "string"
          },
          "itemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromContainerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "serial": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "reference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiMovementReference"
              }
            ]
          },
          "reversedByMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reversalOfMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "batchId": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "totalCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "ownership": {
            "type": "string",
            "default": "owned"
          },
          "ownerReference": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiMovementDetail": {
        "required": [
          "event",
          "batchSiblingsCount"
        ],
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/PublicApiMovement"
          },
          "batchSiblingsCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiMovementHistoryReportItem": {
        "required": [
          "kind",
          "occurredAt",
          "itemId",
          "itemName",
          "sku",
          "categoryId",
          "categoryPath",
          "quantity",
          "signedQuantity",
          "unit",
          "fromLocationId",
          "fromLocationName",
          "toLocationId",
          "toLocationName",
          "fromContainerId",
          "fromContainerCode",
          "toContainerId",
          "toContainerCode",
          "reason",
          "batchId",
          "referenceKind",
          "referenceLabel",
          "unitCost",
          "costCurrency",
          "totalCost"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "itemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "sku": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "signedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromLocationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "fromContainerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "batchId": {
            "type": [
              "null",
              "string"
            ]
          },
          "referenceKind": {
            "type": [
              "null",
              "string"
            ]
          },
          "referenceLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "totalCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiMovementReference": {
        "required": [
          "kind",
          "id",
          "label"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      },
      "PublicApiMovementRollupReportItem": {
        "required": [
          "groupKey",
          "groupLabel",
          "unit",
          "count",
          "quantityIn",
          "quantityOut",
          "quantityNet"
        ],
        "type": "object",
        "properties": {
          "groupKey": {
            "type": "string"
          },
          "groupLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "count": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "quantityIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantityOut": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantityNet": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiMoveStockRequest": {
        "required": [
          "sourceStockRecordId",
          "quantity",
          "destinationLocationId",
          "destinationContainerId",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiNote": {
        "required": [
          "id",
          "targetKind",
          "targetId",
          "kind",
          "body",
          "pinned",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "pinned": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiNotesByKindRequest": {
        "required": [
          "targetKind",
          "targetIds",
          "kind"
        ],
        "type": "object",
        "properties": {
          "targetKind": {
            "type": "string"
          },
          "targetIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "kind": {
            "type": "string"
          }
        }
      },
      "PublicApiOrderFrequencyReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "categoryId",
          "categoryPath",
          "orderCount",
          "totalQuantity",
          "unit",
          "supplierCount",
          "firstOrderedAt",
          "lastOrderedAt",
          "averageIntervalDays"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "orderCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "supplierCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "firstOrderedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastOrderedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "averageIntervalDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiPageInfo": {
        "required": [
          "limit",
          "cursor",
          "nextCursor"
        ],
        "type": "object",
        "properties": {
          "limit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "cursor": {
            "type": [
              "null",
              "string"
            ]
          },
          "nextCursor": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPickLine": {
        "required": [
          "id",
          "sortOrder",
          "itemId",
          "itemName",
          "variantId",
          "requiredQty",
          "pickedQty",
          "unit",
          "status",
          "sourceStockRecordId",
          "locationId",
          "locationPath",
          "containerId",
          "containerCode",
          "lotId",
          "reservationId",
          "substitutionItemId",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sortOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "requiredQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "pickedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reservationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "substitutionItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPickLineRequest": {
        "required": [
          "pickedQty",
          "sourceStockRecordId",
          "note"
        ],
        "type": "object",
        "properties": {
          "pickedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sourceStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPickListDetail": {
        "required": [
          "id",
          "code",
          "status",
          "sourceKind",
          "sourceId",
          "sourceLabel",
          "sourcingStrategy",
          "autoReserve",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "note",
          "lineCount",
          "shortLineCount",
          "lines"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sourceKind": {
            "type": "string"
          },
          "sourceId": {
            "type": "string"
          },
          "sourceLabel": {
            "type": "string"
          },
          "sourcingStrategy": {
            "type": "string"
          },
          "autoReserve": {
            "type": "boolean"
          },
          "createdByUserId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "shortLineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPickLine"
            }
          }
        }
      },
      "PublicApiPickListSummary": {
        "required": [
          "id",
          "code",
          "status",
          "sourceKind",
          "sourceId",
          "sourceLabel",
          "sourcingStrategy",
          "autoReserve",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "note",
          "lineCount",
          "shortLineCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sourceKind": {
            "type": "string"
          },
          "sourceId": {
            "type": "string"
          },
          "sourceLabel": {
            "type": "string"
          },
          "sourcingStrategy": {
            "type": "string"
          },
          "autoReserve": {
            "type": "boolean"
          },
          "createdByUserId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "shortLineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiPoStatusReportItem": {
        "required": [
          "supplierId",
          "supplierName",
          "currency",
          "draftCount",
          "sentCount",
          "openCount",
          "partialCount",
          "closedCount",
          "cancelledCount",
          "totalCount",
          "openValue",
          "closedValue",
          "cancelledValue"
        ],
        "type": "object",
        "properties": {
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "draftCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sentCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "openCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "partialCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "closedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "cancelledCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "openValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "closedValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "cancelledValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiPriceHistoryReportItem": {
        "required": [
          "purchaseOrderId",
          "purchaseOrderCode",
          "purchaseOrderStatus",
          "orderedAt",
          "supplierId",
          "supplierName",
          "itemId",
          "itemName",
          "sku",
          "supplierSku",
          "quantity",
          "unit",
          "unitCost",
          "lineTotal",
          "currency"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderId": {
            "type": "string"
          },
          "purchaseOrderCode": {
            "type": "string"
          },
          "purchaseOrderStatus": {
            "type": "string"
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time"
          },
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "sku": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "PublicApiProjectBomLink": {
        "required": [
          "id",
          "projectId",
          "bomId",
          "bomRevisionId",
          "bomRevisionNumber",
          "bomCode",
          "bomName",
          "bomVersion",
          "buildQuantity",
          "notes",
          "coveragePercent",
          "totalLines",
          "coveredLines",
          "partialLines",
          "missingLines",
          "totalShortfallCost",
          "costCurrency",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "bomRevisionId": {
            "type": "string"
          },
          "bomRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bomCode": {
            "type": "string"
          },
          "bomName": {
            "type": "string"
          },
          "bomVersion": {
            "type": "string"
          },
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "coveragePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "coveredLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "partialLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "missingLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalShortfallCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiProjectBomReservationLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "requestedQuantity",
          "reservedQuantity",
          "unit",
          "reservationId",
          "movementId",
          "status"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "requestedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reservedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "reservationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "movementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiProjectBomReservationResponse": {
        "required": [
          "projectId",
          "projectBomLinkId",
          "mode",
          "lines",
          "reservedLines",
          "skippedLines"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "projectBomLinkId": {
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiProjectBomReservationLine"
            }
          },
          "reservedLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skippedLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiProjectDetail": {
        "required": [
          "id",
          "code",
          "name",
          "description",
          "status",
          "owner",
          "startDate",
          "endDate",
          "tags",
          "notes",
          "bomCount",
          "coveragePercent",
          "isArchived",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "owner": {
            "type": [
              "null",
              "string"
            ]
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "bomCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "coveragePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "isArchived": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiProjectSummary": {
        "required": [
          "id",
          "code",
          "name",
          "status",
          "owner",
          "startDate",
          "endDate",
          "tags",
          "bomCount",
          "coveragePercent",
          "isArchived",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "owner": {
            "type": [
              "null",
              "string"
            ]
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bomCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "coveragePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "isArchived": {
            "type": "boolean"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiProjectUpsertRequest": {
        "required": [
          "code",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string",
            "default": "planning"
          },
          "owner": {
            "type": [
              "null",
              "string"
            ]
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "tags": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiProjectUsageReport": {
        "required": [
          "projectId",
          "bomId",
          "bomCode",
          "bomName",
          "bomVersion",
          "buildQuantity",
          "computedAt",
          "totalLines",
          "totalPlanned",
          "totalActual",
          "includesCostTotals",
          "costCurrency",
          "totalPlannedCost",
          "totalActualCost",
          "totalCostVariance",
          "lines",
          "missingSubBomIds"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "bomId": {
            "type": [
              "null",
              "string"
            ]
          },
          "bomCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "bomName": {
            "type": [
              "null",
              "string"
            ]
          },
          "bomVersion": {
            "type": [
              "null",
              "string"
            ]
          },
          "buildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "computedAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalLines": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalPlanned": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalActual": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "includesCostTotals": {
            "type": "boolean"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "totalPlannedCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalActualCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCostVariance": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiProjectUsageReportLine"
            }
          },
          "missingSubBomIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiProjectUsageReportLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "planned",
          "actual",
          "variance",
          "wastePercent",
          "unit",
          "status",
          "isSubstitution",
          "unitCost",
          "costCurrency",
          "plannedCost",
          "actualCost"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "planned": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "actual": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "variance": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "wastePercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "isSubstitution": {
            "type": "boolean"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "plannedCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "actualCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiPurchaseOrderDetail": {
        "required": [
          "id",
          "code",
          "supplierId",
          "supplierName",
          "currency",
          "status",
          "expectedDate",
          "taxRate",
          "shippingAddress",
          "billingAddress",
          "notes",
          "subtotal",
          "tax",
          "total",
          "createdAt",
          "updatedAt",
          "sentAt",
          "closedAt",
          "cancelledAt",
          "cancellationReason",
          "lines"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "taxRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "shippingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "billingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "subtotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "tax": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "closedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "cancelledAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "cancellationReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPurchaseOrderLine"
            }
          }
        }
      },
      "PublicApiPurchaseOrderLine": {
        "required": [
          "id",
          "lineNumber",
          "itemId",
          "variantId",
          "supplierItemLinkId",
          "supplierSku",
          "description",
          "unit",
          "quantity",
          "unitCost",
          "discount",
          "lineTotal",
          "expectedDate",
          "receivedQty",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lineNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierItemLinkId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "discount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "receivedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiPurchaseOrderLineInput": {
        "required": [
          "itemId",
          "variantId",
          "supplierItemLinkId",
          "supplierSku",
          "description",
          "unit",
          "quantity",
          "unitCost",
          "discount",
          "expectedDate"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierItemLinkId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "discount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PublicApiPurchaseOrderSummary": {
        "required": [
          "id",
          "code",
          "supplierId",
          "supplierName",
          "currency",
          "status",
          "expectedDate",
          "subtotal",
          "total",
          "lineCount",
          "linesReceivedCount",
          "orderedQuantity",
          "receivedQuantity",
          "createdAt",
          "updatedAt",
          "sentAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "subtotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "linesReceivedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "orderedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "receivedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PublicApiPutawayPlacement": {
        "required": [
          "index",
          "sourceStockRecordId",
          "quantity",
          "destinationLocationId",
          "destinationContainerId",
          "note"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPutawayPlacementResult": {
        "required": [
          "index",
          "ok",
          "movementId",
          "destinationStockRecordId",
          "errorCode",
          "errorMessage"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "ok": {
            "type": "boolean"
          },
          "movementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPutawayStockRequest": {
        "required": [
          "placements",
          "batchId",
          "reference",
          "note"
        ],
        "type": "object",
        "properties": {
          "placements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPutawayPlacement"
            }
          },
          "batchId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reference": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiPutawayStockResult": {
        "required": [
          "batchId",
          "total",
          "successCount",
          "failureCount",
          "results"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "successCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "failureCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPutawayPlacementResult"
            }
          }
        }
      },
      "PublicApiPutawaySuggestion": {
        "required": [
          "itemId",
          "variantId",
          "locationId",
          "locationName",
          "quantity",
          "unit",
          "reason"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": "string"
          },
          "locationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "PublicApiQuarantineStockRequest": {
        "required": [
          "sourceStockRecordId",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiQuarantineStockResult": {
        "required": [
          "movementId",
          "stockRecordId",
          "quantity",
          "unit"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "stockRecordId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          }
        }
      },
      "PublicApiReasonCode": {
        "required": [
          "id",
          "movementKind",
          "key",
          "labelEn",
          "labelNb",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "movementKind": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiReceiveAgainstPurchaseOrderLine": {
        "required": [
          "index",
          "poLineId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "poLineId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "shortReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveAgainstPurchaseOrderLineResult": {
        "required": [
          "index",
          "poLineId",
          "ok",
          "movementId",
          "stockRecordId",
          "receivedQuantity",
          "lineStatus",
          "errorCode"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "poLineId": {
            "type": "string"
          },
          "ok": {
            "type": "boolean"
          },
          "movementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "receivedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineStatus": {
            "type": "string"
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveAgainstPurchaseOrderRequest": {
        "required": [
          "lines"
        ],
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderLine"
            }
          },
          "reference": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "allowOverReceipt": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "PublicApiReceiveAgainstPurchaseOrderResult": {
        "required": [
          "purchaseOrderId",
          "purchaseOrderCode",
          "purchaseOrderStatus",
          "batchId",
          "total",
          "successCount",
          "failureCount",
          "results"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderId": {
            "type": "string"
          },
          "purchaseOrderCode": {
            "type": "string"
          },
          "purchaseOrderStatus": {
            "type": "string"
          },
          "batchId": {
            "type": "string"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "successCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "failureCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReceiveAgainstPurchaseOrderLineResult"
            }
          }
        }
      },
      "PublicApiReceiveStockLine": {
        "required": [
          "index",
          "itemId",
          "quantity",
          "unit",
          "destinationLocationId",
          "destinationContainerId",
          "variantId",
          "condition",
          "note"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "itemId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "condition": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "serials": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "expiryDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "manufactureDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "supplierReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "ownership": {
            "type": [
              "null",
              "string"
            ]
          },
          "ownerReference": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveStockLineResult": {
        "required": [
          "index",
          "ok",
          "movementId",
          "stockRecordId",
          "errorCode",
          "errorMessage"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "ok": {
            "type": "boolean"
          },
          "movementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveStockRequest": {
        "required": [
          "lines",
          "reference",
          "note"
        ],
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReceiveStockLine"
            }
          },
          "reference": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveStockResult": {
        "required": [
          "batchId",
          "total",
          "successCount",
          "failureCount",
          "results"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "successCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "failureCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReceiveStockLineResult"
            }
          }
        }
      },
      "PublicApiReceiveTransferLine": {
        "required": [
          "lineId",
          "quantityReceived"
        ],
        "type": "object",
        "properties": {
          "lineId": {
            "type": "string"
          },
          "quantityReceived": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "varianceReason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReceiveTransferRequest": {
        "required": [
          "lines"
        ],
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReceiveTransferLine"
            }
          }
        }
      },
      "PublicApiReceiveTransferResult": {
        "required": [
          "transferId",
          "status",
          "lineCount",
          "totalReceived",
          "totalVariance"
        ],
        "type": "object",
        "properties": {
          "transferId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalReceived": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalVariance": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiRecordMaintenanceRequest": {
        "required": [
          "kind",
          "result"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "scheduleId": {
            "type": [
              "null",
              "string"
            ]
          },
          "certificateUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiRejectCountRequest": {
        "required": [
          "notes"
        ],
        "type": "object",
        "properties": {
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiRejectCountResult": {
        "required": [
          "taskId",
          "status",
          "rejectedAt"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "rejectedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiReleaseQuarantineRequest": {
        "required": [
          "sourceStockRecordId",
          "outcome",
          "amount",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "outcome": {
            "type": "string"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReleaseQuarantineResult": {
        "required": [
          "movementId",
          "companionMovementId",
          "stockRecordId",
          "destinationStockRecordId",
          "outcome",
          "amount",
          "unit"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "companionMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockRecordId": {
            "type": "string"
          },
          "destinationStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "outcome": {
            "type": "string"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          }
        }
      },
      "PublicApiReleaseReservationRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReorderSuggestion": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "unit",
          "onHand",
          "reserved",
          "available",
          "incoming",
          "demandInWindow",
          "windowDays",
          "reorderPoint",
          "suggestedQty",
          "supplierItemLinkId",
          "supplierId",
          "supplierName",
          "supplierSku",
          "expectedUnitCost",
          "currency",
          "moq",
          "packagingQty",
          "preferredOrderQty",
          "leadTimeDays",
          "reasons",
          "priority"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "itemSku": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "demandInWindow": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "windowDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reorderPoint": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "suggestedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "supplierItemLinkId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierId": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierName": {
            "type": [
              "null",
              "string"
            ]
          },
          "supplierSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "expectedUnitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "currency": {
            "type": [
              "null",
              "string"
            ]
          },
          "moq": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packagingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preferredOrderQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "leadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "priority": {
            "type": "string"
          }
        }
      },
      "PublicApiReservation": {
        "required": [
          "id",
          "code",
          "itemId",
          "itemName",
          "variantId",
          "quantity",
          "unit",
          "consumedQty",
          "remainingQty",
          "status",
          "targetKind",
          "targetId",
          "targetLabel",
          "scope",
          "locationId",
          "locationPath",
          "containerId",
          "containerCode",
          "stockRecordId",
          "lotId",
          "reservedByUserId",
          "reservedByUserName",
          "reservedAt",
          "expiresAt",
          "releasedAt",
          "releasedByUserId",
          "releaseReason",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "consumedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "remainingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "status": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "targetId": {
            "type": "string"
          },
          "targetLabel": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reservedByUserId": {
            "type": "string"
          },
          "reservedByUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "reservedAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "releasedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "releasedByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "releaseReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiResolvedItem": {
        "required": [
          "identifier",
          "matchKind",
          "item"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "matchKind": {
            "type": "string"
          },
          "item": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiItemSummary"
              }
            ]
          }
        }
      },
      "PublicApiResolveItemsRequest": {
        "required": [
          "identifiers"
        ],
        "type": "object",
        "properties": {
          "identifiers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiResolveScanRequest": {
        "required": [
          "payload"
        ],
        "type": "object",
        "properties": {
          "payload": {
            "type": "string"
          },
          "symbology": {
            "type": [
              "null",
              "string"
            ]
          },
          "context": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiResolveScanResponse": {
        "required": [
          "kind",
          "parserKey",
          "confidence",
          "normalizedPayload",
          "fields",
          "suggestedActions",
          "matches",
          "warnings"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "parserKey": {
            "type": "string"
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "normalizedPayload": {
            "type": "string"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "suggestedActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiScanSuggestedAction"
            }
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiScanMatch"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiReturnStockLine": {
        "required": [
          "itemId",
          "variantId",
          "quantity",
          "unit",
          "lotId",
          "note"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "originalMovementId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReturnStockRequest": {
        "required": [
          "sourceKind",
          "sourceId",
          "sourceLabel",
          "sourceIssueBatchId",
          "outcome",
          "reason",
          "destinationLocationId",
          "destinationContainerId",
          "note",
          "lines"
        ],
        "type": "object",
        "properties": {
          "sourceKind": {
            "type": "string"
          },
          "sourceId": {
            "type": "string"
          },
          "sourceLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceIssueBatchId": {
            "type": [
              "null",
              "string"
            ]
          },
          "outcome": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiReturnStockLine"
            }
          }
        }
      },
      "PublicApiReturnStockResult": {
        "required": [
          "batchId",
          "outcome",
          "lineCount",
          "movementIds",
          "companionMovementIds",
          "destinationStockRecordIds"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "outcome": {
            "type": "string"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "movementIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "companionMovementIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "destinationStockRecordIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiReverseMovementRequest": {
        "required": [
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiReverseMovementResult": {
        "required": [
          "movementId",
          "reversalOfMovementId",
          "kind"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "reversalOfMovementId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          }
        }
      },
      "PublicApiReviewCountLineRequest": {
        "required": [
          "decision",
          "reasonCode",
          "overrideQty",
          "reviewNotes"
        ],
        "type": "object",
        "properties": {
          "decision": {
            "type": "string"
          },
          "reasonCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "overrideQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reviewNotes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiRunCycleCountRuleResult": {
        "required": [
          "ruleId",
          "taskId",
          "taskCode",
          "firedAtUtc",
          "nextRunAtUtc"
        ],
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "taskCode": {
            "type": "string"
          },
          "firedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "nextRunAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PublicApiScanMatch": {
        "required": [
          "kind",
          "id",
          "label",
          "confidence"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiScanSuggestedAction": {
        "required": [
          "key",
          "label"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "parameters": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiSearchResult": {
        "required": [
          "kind",
          "id",
          "label",
          "code",
          "detail"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "code": {
            "type": [
              "null",
              "string"
            ]
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiSendPurchaseOrderReminderRequest": {
        "required": [
          "purchaseOrderIds"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiSendPurchaseOrderReminderResponse": {
        "required": [
          "queued"
        ],
        "type": "object",
        "properties": {
          "queued": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiSendSerialUnitReminderResponse": {
        "required": [
          "queued"
        ],
        "type": "object",
        "properties": {
          "queued": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiSendTransferLine": {
        "required": [
          "sourceStockRecordId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiSendTransferRequest": {
        "required": [
          "fromLocationId",
          "toLocationId",
          "lines"
        ],
        "type": "object",
        "properties": {
          "fromLocationId": {
            "type": "string"
          },
          "toLocationId": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSendTransferLine"
            }
          },
          "carrier": {
            "type": [
              "null",
              "string"
            ]
          },
          "trackingNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiSendTransferResult": {
        "required": [
          "transferId",
          "code",
          "status",
          "lineCount",
          "inTransitQuantity"
        ],
        "type": "object",
        "properties": {
          "transferId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "inTransitQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiSerialUnitDetail": {
        "required": [
          "id",
          "serial",
          "itemId",
          "itemName",
          "itemSku",
          "variantId",
          "status",
          "condition",
          "currentLocationId",
          "currentLocationName",
          "currentContainerId",
          "assignedToKind",
          "assignedToId",
          "assignedToLabel",
          "checkedOutAt",
          "dueBackAt",
          "lastCalibrationAt",
          "nextCalibrationAt",
          "purchaseDate",
          "warrantyEndDate",
          "acquisitionCost",
          "notes",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "condition": {
            "type": "string"
          },
          "currentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentLocationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToKind": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "checkedOutAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "dueBackAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastCalibrationAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "nextCalibrationAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "purchaseDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "warrantyEndDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "acquisitionCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSerialUnitEvent": {
        "required": [
          "id",
          "serialUnitId",
          "type",
          "occurredAt",
          "assigneeKind",
          "assigneeId",
          "assigneeLabel",
          "dueBackAt",
          "conditionAtEvent",
          "damageNote",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serialUnitId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "assigneeKind": {
            "type": [
              "null",
              "string"
            ]
          },
          "assigneeId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assigneeLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "dueBackAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "conditionAtEvent": {
            "type": "string"
          },
          "damageNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiSerialUnitSummary": {
        "required": [
          "id",
          "serial",
          "itemId",
          "itemName",
          "itemSku",
          "variantId",
          "status",
          "condition",
          "currentLocationId",
          "currentLocationName",
          "currentContainerId",
          "assignedToKind",
          "assignedToId",
          "assignedToLabel",
          "checkedOutAt",
          "dueBackAt",
          "nextCalibrationAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": "string"
          },
          "condition": {
            "type": "string"
          },
          "currentLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentLocationName": {
            "type": [
              "null",
              "string"
            ]
          },
          "currentContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToKind": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToId": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedToLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "checkedOutAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "dueBackAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "nextCalibrationAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiShortPickLineRequest": {
        "required": [
          "pickedQty",
          "reason"
        ],
        "type": "object",
        "properties": {
          "pickedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "PublicApiSiteReorderRule": {
        "required": [
          "id",
          "siteId",
          "siteCode",
          "siteName",
          "itemId",
          "itemSku",
          "itemName",
          "variantId",
          "minStock",
          "maxStock",
          "reorderPoint",
          "reorderQuantity",
          "preferredSupplierId",
          "preferredSupplierName",
          "active",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "siteId": {
            "type": "string"
          },
          "siteCode": {
            "type": "string"
          },
          "siteName": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemSku": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "minStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "maxStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderPoint": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "preferredSupplierId": {
            "type": [
              "null",
              "string"
            ]
          },
          "preferredSupplierName": {
            "type": [
              "null",
              "string"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSkipPickLineRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiStaleInventoryReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "onHand",
          "unit",
          "lastCountedAt",
          "daysSinceCount"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "lastCountedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "daysSinceCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiStartPickListRequest": {
        "type": "object"
      },
      "PublicApiStockAdjustmentResult": {
        "required": [
          "movementId",
          "stockRecordId",
          "newQuantity",
          "unit",
          "direction",
          "delta"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "stockRecordId": {
            "type": "string"
          },
          "newQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "delta": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiStockByCategoryReportItem": {
        "required": [
          "categoryId",
          "categoryPath",
          "itemCount",
          "onHand",
          "reserved",
          "available",
          "unit",
          "costCurrency",
          "stockValue"
        ],
        "type": "object",
        "properties": {
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiStockByLocationReportItem": {
        "required": [
          "locationId",
          "locationPath",
          "itemId",
          "itemName",
          "sku",
          "variantId",
          "quantity",
          "reservedQuantity",
          "availableQuantity",
          "unit",
          "condition",
          "status",
          "unitCost",
          "costCurrency",
          "stockValue"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reservedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "availableQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "condition": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiStockByManufacturerReportItem": {
        "required": [
          "manufacturerId",
          "manufacturerName",
          "manufacturerCode",
          "itemCount",
          "onHand",
          "reserved",
          "available",
          "unit",
          "costCurrency",
          "stockValue"
        ],
        "type": "object",
        "properties": {
          "manufacturerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerName": {
            "type": [
              "null",
              "string"
            ]
          },
          "manufacturerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiStockConfidence": {
        "required": [
          "score",
          "reasons",
          "lastVerifiedAt",
          "ageDays",
          "unverifiedAdjustments"
        ],
        "type": "object",
        "properties": {
          "score": {
            "type": "string"
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lastVerifiedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "ageDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unverifiedAdjustments": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiStockMoveResult": {
        "required": [
          "movementId",
          "sourceStockRecordId",
          "destinationStockRecordId",
          "sourceRemainingQty",
          "destinationNewQty",
          "unit"
        ],
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "destinationStockRecordId": {
            "type": "string"
          },
          "sourceRemainingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "destinationNewQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          }
        }
      },
      "PublicApiStockRecord": {
        "required": [
          "id",
          "itemId",
          "itemName",
          "variantId",
          "variantLabel",
          "locationId",
          "locationPath",
          "containerId",
          "containerCode",
          "lotId",
          "lotCode",
          "serialUnitId",
          "serial",
          "quantity",
          "unit",
          "reservedQty",
          "availableQty",
          "condition",
          "status",
          "createdAt",
          "updatedAt",
          "confidence",
          "ownership",
          "ownerReference"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "locationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "containerCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotId": {
            "type": [
              "null",
              "string"
            ]
          },
          "lotCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "serialUnitId": {
            "type": [
              "null",
              "string"
            ]
          },
          "serial": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "reservedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "availableQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "condition": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "confidence": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiStockConfidence"
              }
            ]
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "costCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "stockValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "ownership": {
            "type": "string",
            "default": "owned"
          },
          "ownerReference": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiStockSummary": {
        "required": [
          "onHand",
          "reserved",
          "available",
          "incoming",
          "inTransit",
          "damaged",
          "quarantined",
          "expired",
          "confidence",
          "units"
        ],
        "type": "object",
        "properties": {
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "inTransit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "damaged": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quarantined": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expired": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "confidence": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiStockConfidence"
              }
            ]
          },
          "units": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockUnitSummary"
            }
          }
        }
      },
      "PublicApiStockUnitSummary": {
        "required": [
          "unit",
          "onHand",
          "reserved",
          "available",
          "incoming",
          "inTransit",
          "damaged",
          "quarantined",
          "expired"
        ],
        "type": "object",
        "properties": {
          "unit": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reserved": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "available": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incoming": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "inTransit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "damaged": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quarantined": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expired": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiStockValuationReportItem": {
        "required": [
          "key",
          "label",
          "secondaryLabel",
          "quantity",
          "unit",
          "itemCount",
          "stockRecordCount",
          "value",
          "unvaluedRowCount"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "secondaryLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stockRecordCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "value": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unvaluedRowCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiStockValuationReportResponse": {
        "required": [
          "asOf",
          "historyAvailableFrom",
          "isComplete",
          "valuationModel",
          "reportingCurrency",
          "fxAsOf",
          "groupBy",
          "totalValue",
          "stockRecordCount",
          "unvaluedRowCount",
          "data",
          "page"
        ],
        "type": "object",
        "properties": {
          "asOf": {
            "type": "string",
            "format": "date"
          },
          "historyAvailableFrom": {
            "type": "string",
            "format": "date"
          },
          "isComplete": {
            "type": "boolean"
          },
          "valuationModel": {
            "type": "string"
          },
          "reportingCurrency": {
            "type": "string"
          },
          "fxAsOf": {
            "type": "string",
            "format": "date-time"
          },
          "groupBy": {
            "type": "string"
          },
          "totalValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "stockRecordCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unvaluedRowCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiStockValuationReportItem"
            }
          },
          "page": {
            "$ref": "#/components/schemas/PublicApiPageInfo"
          }
        }
      },
      "PublicApiSubmitCountResult": {
        "required": [
          "taskId",
          "status",
          "movementsEmitted",
          "varianceValue",
          "completedAt"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "movementsEmitted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "varianceValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSubstitutePickLineRequest": {
        "required": [
          "substitutionItemId",
          "pickedQty",
          "sourceStockRecordId",
          "note"
        ],
        "type": "object",
        "properties": {
          "substitutionItemId": {
            "type": "string"
          },
          "pickedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sourceStockRecordId": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiSupplierDetail": {
        "required": [
          "id",
          "name",
          "currency",
          "contactEmail",
          "contactPhone",
          "website",
          "preferred",
          "defaultLeadTimeDays",
          "taxId",
          "paymentTermsDays",
          "notes",
          "isArchived",
          "openPoCount",
          "totalSpend12m",
          "itemLinkCount",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "contactEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "contactPhone": {
            "type": [
              "null",
              "string"
            ]
          },
          "website": {
            "type": [
              "null",
              "string"
            ]
          },
          "preferred": {
            "type": "boolean"
          },
          "defaultLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "taxId": {
            "type": [
              "null",
              "string"
            ]
          },
          "paymentTermsDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "isArchived": {
            "type": "boolean"
          },
          "openPoCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalSpend12m": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "itemLinkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSupplierItemLink": {
        "required": [
          "id",
          "supplierId",
          "supplierName",
          "itemId",
          "itemName",
          "itemSku",
          "supplierSku",
          "supplierDescription",
          "currency",
          "prices",
          "moq",
          "preferredOrderQty",
          "packagingQty",
          "standardLeadTimeDays",
          "url",
          "lastOrderAt",
          "lastCost",
          "active",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "itemSku": {
            "type": "string"
          },
          "supplierSku": {
            "type": "string"
          },
          "supplierDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "type": "string"
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierPriceBreak"
            }
          },
          "moq": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preferredOrderQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packagingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "standardLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastOrderAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSupplierItemLinkCreateRequest": {
        "required": [
          "itemId",
          "supplierSku",
          "currency",
          "prices"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "supplierSku": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierPriceBreak"
            }
          },
          "supplierDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "moq": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preferredOrderQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packagingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "standardLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "active": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "PublicApiSupplierItemLinkUpdateRequest": {
        "required": [
          "supplierSku",
          "currency",
          "prices"
        ],
        "type": "object",
        "properties": {
          "supplierSku": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiSupplierPriceBreak"
            }
          },
          "supplierDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "moq": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preferredOrderQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packagingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "standardLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "active": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "PublicApiSupplierPerformance": {
        "required": [
          "totalPoCount",
          "onTimePoCount",
          "onTimeRate",
          "shortDeliveryCount",
          "shortDeliveryRate",
          "leadTimeAccuracyDays",
          "qualityRejectCount",
          "qualityRejectRate",
          "hasData"
        ],
        "type": "object",
        "properties": {
          "totalPoCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onTimePoCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onTimeRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "shortDeliveryCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "shortDeliveryRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "leadTimeAccuracyDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "qualityRejectCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "qualityRejectRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "hasData": {
            "type": "boolean"
          }
        }
      },
      "PublicApiSupplierPerformanceReportItem": {
        "required": [
          "supplierId",
          "supplierName",
          "currency",
          "orderCount",
          "closedCount",
          "onTimeCount",
          "lateCount",
          "shortDeliveryCount",
          "onTimeRate",
          "shortDeliveryRate",
          "averageActualLeadTimeDays",
          "averageExpectedLeadTimeDays",
          "leadTimeAccuracyDays",
          "totalSpend"
        ],
        "type": "object",
        "properties": {
          "supplierId": {
            "type": "string"
          },
          "supplierName": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "orderCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "closedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onTimeCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lateCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "shortDeliveryCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "onTimeRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "shortDeliveryRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "averageActualLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "averageExpectedLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "leadTimeAccuracyDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalSpend": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiSupplierPriceBreak": {
        "required": [
          "minQty",
          "unitCost"
        ],
        "type": "object",
        "properties": {
          "minQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unitCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiSupplierSummary": {
        "required": [
          "id",
          "name",
          "currency",
          "contactEmail",
          "preferred",
          "defaultLeadTimeDays",
          "openPoCount",
          "totalSpend12m",
          "isArchived",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "contactEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "preferred": {
            "type": "boolean"
          },
          "defaultLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "openPoCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalSpend12m": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "isArchived": {
            "type": "boolean"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiSupplierUpsertRequest": {
        "required": [
          "name",
          "currency"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "contactEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "contactPhone": {
            "type": [
              "null",
              "string"
            ]
          },
          "website": {
            "type": [
              "null",
              "string"
            ]
          },
          "preferred": {
            "type": "boolean",
            "default": false
          },
          "defaultLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "taxId": {
            "type": [
              "null",
              "string"
            ]
          },
          "paymentTermsDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiTag": {
        "required": [
          "id",
          "label",
          "displayLabel",
          "color",
          "usageCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "displayLabel": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "usageCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiTagAdmin": {
        "required": [
          "id",
          "label",
          "displayLabel",
          "color",
          "status",
          "usageCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "displayLabel": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "usageCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiTestWebhookDeliveryRequest": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiTransferDetail": {
        "required": [
          "id",
          "code",
          "status",
          "fromLocationId",
          "fromLocationPath",
          "toLocationId",
          "toLocationPath",
          "createdByUserId",
          "createdByUserName",
          "createdAt",
          "sentByUserId",
          "sentByUserName",
          "sentAt",
          "receivedByUserId",
          "receivedByUserName",
          "receivedAt",
          "cancelledByUserId",
          "cancelledByUserName",
          "cancelledAt",
          "carrier",
          "trackingNumber",
          "note",
          "lineCount",
          "inTransitQuantity",
          "lines"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "fromLocationId": {
            "type": "string"
          },
          "fromLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationId": {
            "type": "string"
          },
          "toLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdByUserId": {
            "type": "string"
          },
          "createdByUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "sentByUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "sentAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "receivedByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "receivedByUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "receivedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "cancelledByUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "cancelledByUserName": {
            "type": [
              "null",
              "string"
            ]
          },
          "cancelledAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "carrier": {
            "type": [
              "null",
              "string"
            ]
          },
          "trackingNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "inTransitQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiTransferLine"
            }
          }
        }
      },
      "PublicApiTransferInTransitStats": {
        "required": [
          "inTransit",
          "overdue",
          "overdueAfterDays"
        ],
        "type": "object",
        "properties": {
          "inTransit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overdue": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overdueAfterDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiTransferLine": {
        "required": [
          "id",
          "sourceStockRecordId",
          "itemId",
          "itemName",
          "variantId",
          "variantLabel",
          "quantitySent",
          "quantityReceived",
          "unit",
          "fromContainerId",
          "toContainerId",
          "sendMovementId",
          "receiveMovementId",
          "varianceMovementId",
          "varianceReason",
          "note"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantId": {
            "type": [
              "null",
              "string"
            ]
          },
          "variantLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantitySent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantityReceived": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "fromContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "toContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "sendMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "receiveMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "varianceMovementId": {
            "type": [
              "null",
              "string"
            ]
          },
          "varianceReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiTransferSummary": {
        "required": [
          "id",
          "code",
          "status",
          "fromLocationId",
          "fromLocationPath",
          "toLocationId",
          "toLocationPath",
          "createdAt",
          "sentAt",
          "receivedAt",
          "cancelledAt",
          "carrier",
          "trackingNumber",
          "note",
          "lineCount",
          "inTransitQuantity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "fromLocationId": {
            "type": "string"
          },
          "fromLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "toLocationId": {
            "type": "string"
          },
          "toLocationPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "receivedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "cancelledAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "carrier": {
            "type": [
              "null",
              "string"
            ]
          },
          "trackingNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "lineCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "inTransitQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublicApiTurnoverReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "categoryId",
          "categoryPath",
          "unit",
          "consumedQuantity",
          "onHand",
          "turnoverRatio",
          "movementCount",
          "lastMovementAt"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryPath": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "consumedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "turnoverRatio": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "movementCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lastMovementAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PublicApiUnbuildKitRequest": {
        "required": [
          "sourceStockRecordId",
          "unbuildQuantity",
          "destinationLocationId",
          "destinationContainerId",
          "condition",
          "reason",
          "note"
        ],
        "type": "object",
        "properties": {
          "sourceStockRecordId": {
            "type": "string"
          },
          "unbuildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "destinationLocationId": {
            "type": [
              "null",
              "string"
            ]
          },
          "destinationContainerId": {
            "type": [
              "null",
              "string"
            ]
          },
          "condition": {
            "type": [
              "null",
              "string"
            ]
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "bomRevisionId": {
            "type": [
              "null",
              "string"
            ]
          },
          "buildBatchId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiUnbuildKitResult": {
        "required": [
          "batchId",
          "bomId",
          "kitItemId",
          "unbuildQuantity",
          "sourceStockRecordId",
          "sourceRemainingQty",
          "unit",
          "unbuildMovementId",
          "condition",
          "bomRevisionId",
          "bomRevisionNumber",
          "bomRevisionVersion",
          "returned"
        ],
        "type": "object",
        "properties": {
          "batchId": {
            "type": "string"
          },
          "bomId": {
            "type": "string"
          },
          "kitItemId": {
            "type": "string"
          },
          "unbuildQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sourceStockRecordId": {
            "type": "string"
          },
          "sourceRemainingQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "unbuildMovementId": {
            "type": "string"
          },
          "condition": {
            "type": "string"
          },
          "bomRevisionId": {
            "type": "string"
          },
          "bomRevisionNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bomRevisionVersion": {
            "type": "string"
          },
          "returned": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiUnbuildKitReturnedLine"
            }
          }
        }
      },
      "PublicApiUnbuildKitReturnedLine": {
        "required": [
          "itemId",
          "itemName",
          "itemSku",
          "quantity",
          "unit",
          "destinationStockRecordId",
          "movementId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": [
              "null",
              "string"
            ]
          },
          "itemSku": {
            "type": [
              "null",
              "string"
            ]
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": "string"
          },
          "destinationStockRecordId": {
            "type": "string"
          },
          "movementId": {
            "type": "string"
          }
        }
      },
      "PublicApiUnitOfMeasure": {
        "required": [
          "id",
          "value",
          "nameEn",
          "nameNb",
          "decimals",
          "status",
          "usageCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "nameEn": {
            "type": "string"
          },
          "nameNb": {
            "type": "string"
          },
          "decimals": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "type": "string"
          },
          "usageCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiUnplacedItemReportItem": {
        "required": [
          "itemId",
          "itemName",
          "sku",
          "unit",
          "onHand",
          "kind"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "itemName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "onHand": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "kind": {
            "type": "string"
          }
        }
      },
      "PublicApiUpdateBomRequest": {
        "required": [
          "code",
          "name",
          "version"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetItemId": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiBomLineRequest"
            }
          }
        }
      },
      "PublicApiUpdateConditionStateRequest": {
        "required": [
          "labelEn",
          "labelNb",
          "acceptsNewStock"
        ],
        "type": "object",
        "properties": {
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          },
          "acceptsNewStock": {
            "type": "boolean"
          }
        }
      },
      "PublicApiUpdateCustomFieldDefinitionRequest": {
        "required": [
          "required",
          "displayOrder",
          "label",
          "helpText",
          "options",
          "validation"
        ],
        "type": "object",
        "properties": {
          "required": {
            "type": "boolean"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "label": {
            "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
          },
          "helpText": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldLocalizedText"
              }
            ]
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicApiCustomFieldOption"
            }
          },
          "validation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiCustomFieldValidation"
              }
            ]
          }
        }
      },
      "PublicApiUpdateNoteRequest": {
        "required": [
          "kind",
          "body"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        }
      },
      "PublicApiUpdatePurchaseOrderRequest": {
        "required": [
          "expectedDate",
          "taxRate",
          "shippingAddress",
          "billingAddress",
          "notes",
          "lines"
        ],
        "type": "object",
        "properties": {
          "expectedDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "taxRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "shippingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "billingAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiPurchaseOrderLineInput"
            }
          }
        }
      },
      "PublicApiUpdateReasonCodeRequest": {
        "required": [
          "labelEn",
          "labelNb"
        ],
        "type": "object",
        "properties": {
          "labelEn": {
            "type": "string"
          },
          "labelNb": {
            "type": "string"
          }
        }
      },
      "PublicApiUpdateSiteReorderRuleRequest": {
        "type": "object",
        "properties": {
          "minStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "maxStock": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderPoint": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reorderQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "preferredSupplierId": {
            "type": [
              "null",
              "string"
            ]
          },
          "active": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "PublicApiUpdateTagRequest": {
        "required": [
          "displayLabel"
        ],
        "type": "object",
        "properties": {
          "displayLabel": {
            "type": "string"
          },
          "color": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiUpdateUnitOfMeasureRequest": {
        "required": [
          "nameEn",
          "nameNb",
          "decimals"
        ],
        "type": "object",
        "properties": {
          "nameEn": {
            "type": "string"
          },
          "nameNb": {
            "type": "string"
          },
          "decimals": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PublicApiUpdateVariantRequest": {
        "type": "object",
        "properties": {
          "axes": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiUpdateWebhookSubscriptionRequest": {
        "required": [
          "url",
          "eventTypes",
          "enabled"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "PublicApiUpsertCountLineRequest": {
        "required": [
          "countedQty",
          "notes"
        ],
        "type": "object",
        "properties": {
          "countedQty": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiUpsertMaintenanceScheduleRequest": {
        "required": [
          "kind",
          "cadenceEvery",
          "cadenceUnit"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "cadenceEvery": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "cadenceUnit": {
            "type": "string"
          },
          "lastCompletedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "firstDueAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiVehicle": {
        "required": [
          "id",
          "code",
          "name",
          "licensePlate",
          "assignedUserId",
          "isArchived",
          "occupancy",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "licensePlate": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "isArchived": {
            "type": "boolean"
          },
          "occupancy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicApiVehicleOccupancy"
              }
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiVehicleOccupancy": {
        "required": [
          "capacity",
          "capacityUnit",
          "used",
          "percentage",
          "state"
        ],
        "type": "object",
        "properties": {
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "capacityUnit": {
            "type": "string"
          },
          "used": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "state": {
            "type": "string"
          }
        }
      },
      "PublicApiWebhookDelivery": {
        "required": [
          "id",
          "subscriptionId",
          "eventId",
          "eventType",
          "status",
          "attempts",
          "responseStatusCode",
          "createdAt",
          "nextAttemptAt",
          "deliveredAt",
          "deadLetteredAt",
          "lastError"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "subscriptionId": {
            "type": "string"
          },
          "eventId": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "attempts": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "responseStatusCode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "nextAttemptAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "deliveredAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "deadLetteredAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastError": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicApiWebhookDeliveryQueued": {
        "required": [
          "deliveryId",
          "status"
        ],
        "type": "object",
        "properties": {
          "deliveryId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "PublicApiWebhookEventType": {
        "required": [
          "type",
          "version",
          "description"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "version": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "PublicApiWebhookSecretResponse": {
        "required": [
          "subscription",
          "secret"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/PublicApiWebhookSubscription"
          },
          "secret": {
            "type": "string"
          }
        }
      },
      "PublicApiWebhookSubscription": {
        "required": [
          "id",
          "url",
          "eventTypes",
          "enabled",
          "secretFingerprint",
          "secretLastCharacters",
          "createdAt",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "secretFingerprint": {
            "type": "string"
          },
          "secretLastCharacters": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    },
    "securitySchemes": {
      "customerApiKey": {
        "type": "http",
        "description": "Customer API key sent as Authorization: Bearer <api-key>.",
        "scheme": "bearer",
        "bearerFormat": "Itemra customer API key"
      }
    }
  },
  "tags": [
    {
      "name": "Imports"
    },
    {
      "name": "Attachments"
    },
    {
      "name": "Audit"
    },
    {
      "name": "Labels"
    },
    {
      "name": "Boms"
    },
    {
      "name": "Settings"
    },
    {
      "name": "Containers"
    },
    {
      "name": "Counting"
    },
    {
      "name": "Events"
    },
    {
      "name": "Exports"
    },
    {
      "name": "Items"
    },
    {
      "name": "Categories"
    },
    {
      "name": "Locations"
    },
    {
      "name": "Stock"
    },
    {
      "name": "Receiving"
    },
    {
      "name": "Movements"
    },
    {
      "name": "Manufacturers"
    },
    {
      "name": "Reports"
    },
    {
      "name": "Notes"
    },
    {
      "name": "Picking"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Purchasing"
    },
    {
      "name": "SiteReorderRules"
    },
    {
      "name": "Currency"
    },
    {
      "name": "Reservations"
    },
    {
      "name": "Scanning"
    },
    {
      "name": "Search"
    },
    {
      "name": "SerialUnits"
    },
    {
      "name": "Suppliers"
    },
    {
      "name": "Taxonomy"
    },
    {
      "name": "Transfers"
    },
    {
      "name": "Vehicles"
    },
    {
      "name": "Webhooks"
    }
  ],
  "x-supported-api-versions": [
    "1.0"
  ]
}