{
  "openapi": "3.0.3",
  "info": {
    "title": "Sepolo Public API",
    "version": "v1",
    "description": "Public source-aligned reference. Documentation and downloads need no login. Actual API operations require an organization key and the relevant scopes/licenses. Confirm availability in your environment. Placeholder examples are not live data."
  },
  "servers": [
    {
      "url": "https://app.sepolo.app",
      "description": "Sepolo portal API; use the base URL for your environment"
    }
  ],
  "security": [
    {
      "SepoloApiKey": []
    },
    {
      "BearerApiKey": []
    }
  ],
  "paths": {
    "/api/v1/agreements": {
      "get": {
        "operationId": "endpoint-0",
        "tags": [
          "agreements"
        ],
        "summary": "GET /api/v1/agreements",
        "description": "Required scope: agreements.read",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiAgreementDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/agreements/{agreementId}": {
      "get": {
        "operationId": "endpoint-1",
        "tags": [
          "agreements"
        ],
        "summary": "GET /api/v1/agreements/{agreementId}",
        "description": "Required scope: agreements.read",
        "parameters": [
          {
            "name": "agreementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiAgreementDetailDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/appointments": {
      "get": {
        "operationId": "endpoint-2",
        "tags": [
          "appointments"
        ],
        "summary": "GET /api/v1/appointments",
        "description": "Required scope: appointments.read Maximum date window: 366 days.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiAppointmentDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/customers": {
      "get": {
        "operationId": "endpoint-3",
        "tags": [
          "customers"
        ],
        "summary": "GET /api/v1/customers",
        "description": "Required scope: customers.read",
        "parameters": [
          {
            "name": "externalSystem",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true,
              "maxLength": 80
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true,
              "pattern": "^[0-9]+$",
              "description": "Use nextCursor returned by this API. Not a snapshot or change token."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiCustomerDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          },
          "503": {
            "description": "Data source temporarily unavailable; retry later. This is not an empty successful export."
          }
        }
      }
    },
    "/api/v1/devices": {
      "get": {
        "operationId": "endpoint-4",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices",
        "description": "Required scope: devices.read",
        "parameters": [
          {
            "name": "updatedSince",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiDeviceDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}": {
      "get": {
        "operationId": "endpoint-5",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}",
        "description": "Required scope: devices.read",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiDeviceDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}/telemetry": {
      "get": {
        "operationId": "endpoint-6",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}/telemetry",
        "description": "Required scope: telemetry.read Maximum date window: 31 days.",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "metrics",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "telemetryType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiTelemetryDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}/movements": {
      "get": {
        "operationId": "endpoint-7",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}/movements",
        "description": "Required scope: movements.read Maximum date window: 366 days.",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDurationSeconds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiMovementDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}/movements/{movementId}/signature": {
      "get": {
        "operationId": "endpoint-8",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}/movements/{movementId}/signature",
        "description": "Required scope: movements.read",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "movementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMovementSignatureDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}/pointguard/cycles": {
      "get": {
        "operationId": "endpoint-9",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}/pointguard/cycles",
        "description": "Required scope: telemetry.read Maximum date window: 31 days.",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "fromUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiPointGuardCycleDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/devices/{deviceId}/pointguard/cycles/{cycleId}/samples": {
      "get": {
        "operationId": "endpoint-10",
        "tags": [
          "devices"
        ],
        "summary": "GET /api/v1/devices/{deviceId}/pointguard/cycles/{cycleId}/samples",
        "description": "Required scope: telemetry.read",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cycleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiTelemetryDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/relationship-types": {
      "get": {
        "operationId": "endpoint-11",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/relationship-types",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PublicApiImpactRelationshipTypeDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/relationships": {
      "get": {
        "operationId": "endpoint-12",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/relationships",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "assetId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiImpactRelationshipDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      },
      "post": {
        "operationId": "endpoint-13",
        "tags": [
          "impact-mapping"
        ],
        "summary": "POST /api/v1/impact-mapping/relationships",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateImpactRelationshipRequest"
              }
            }
          }
        }
      }
    },
    "/api/v1/impact-mapping/relationships/{relationshipId}": {
      "put": {
        "operationId": "endpoint-14",
        "tags": [
          "impact-mapping"
        ],
        "summary": "PUT /api/v1/impact-mapping/relationships/{relationshipId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "relationshipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateImpactRelationshipRequest"
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "endpoint-15",
        "tags": [
          "impact-mapping"
        ],
        "summary": "DELETE /api/v1/impact-mapping/relationships/{relationshipId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "relationshipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/business-capabilities": {
      "get": {
        "operationId": "endpoint-16",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/business-capabilities",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiBusinessCapabilityDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      },
      "post": {
        "operationId": "endpoint-17",
        "tags": [
          "impact-mapping"
        ],
        "summary": "POST /api/v1/impact-mapping/business-capabilities",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBusinessCapabilityRequest"
              }
            }
          }
        }
      }
    },
    "/api/v1/impact-mapping/business-capabilities/{businessCapabilityId}": {
      "put": {
        "operationId": "endpoint-18",
        "tags": [
          "impact-mapping"
        ],
        "summary": "PUT /api/v1/impact-mapping/business-capabilities/{businessCapabilityId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "businessCapabilityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiCreateBusinessCapabilityRequest"
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "endpoint-19",
        "tags": [
          "impact-mapping"
        ],
        "summary": "DELETE /api/v1/impact-mapping/business-capabilities/{businessCapabilityId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "businessCapabilityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/business-capability-links": {
      "post": {
        "operationId": "endpoint-20",
        "tags": [
          "impact-mapping"
        ],
        "summary": "POST /api/v1/impact-mapping/business-capability-links",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiLinkAssetCapabilityRequest"
              }
            }
          }
        }
      }
    },
    "/api/v1/impact-mapping/business-capability-links/{linkId}": {
      "put": {
        "operationId": "endpoint-21",
        "tags": [
          "impact-mapping"
        ],
        "summary": "PUT /api/v1/impact-mapping/business-capability-links/{linkId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiUpdateAssetCapabilityLinkRequest"
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "endpoint-22",
        "tags": [
          "impact-mapping"
        ],
        "summary": "DELETE /api/v1/impact-mapping/business-capability-links/{linkId}",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/asset-capabilities": {
      "get": {
        "operationId": "endpoint-23",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/asset-capabilities",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "assetId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiAssetCapabilityLinkDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/analysis/{assetId}": {
      "get": {
        "operationId": "endpoint-24",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/analysis/{assetId}",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "maxDepth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImpactAnalysisDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/analysis/{assetId}/graph": {
      "get": {
        "operationId": "endpoint-25",
        "tags": [
          "impact-mapping"
        ],
        "summary": "GET /api/v1/impact-mapping/analysis/{assetId}/graph",
        "description": "Required scope: impact_mapping.read Requires an Impact Mapping license.",
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "maxDepth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImpactGraphDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/impact-mapping/import/validate": {
      "post": {
        "operationId": "endpoint-26",
        "tags": [
          "impact-mapping"
        ],
        "summary": "POST /api/v1/impact-mapping/import/validate",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImpactMappingImportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiImpactMappingImportRequest"
              }
            }
          }
        }
      }
    },
    "/api/v1/impact-mapping/import/commit": {
      "post": {
        "operationId": "endpoint-27",
        "tags": [
          "impact-mapping"
        ],
        "summary": "POST /api/v1/impact-mapping/import/commit",
        "description": "Required scope: impact_mapping.write Requires an Impact Mapping license.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiImpactMappingImportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicApiImpactMappingImportRequest"
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/parts": {
      "get": {
        "operationId": "endpoint-28",
        "tags": [
          "inventory"
        ],
        "summary": "GET /api/v1/inventory/parts",
        "description": "Required scope: inventory.read",
        "parameters": [
          {
            "name": "vendorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "active",
                "inactive",
                "all",
                "true",
                "false"
              ]
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true,
              "pattern": "^[0-9]+$",
              "description": "Use nextCursor returned by this API. Not a snapshot or change token."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiInventoryPartDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          },
          "503": {
            "description": "Data source temporarily unavailable; retry later. This is not an empty successful export."
          }
        }
      }
    },
    "/api/v1/me": {
      "get": {
        "operationId": "endpoint-29",
        "tags": [
          "me"
        ],
        "summary": "GET /api/v1/me",
        "description": "Valid organization key required.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiMeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/remote-support-cases": {
      "get": {
        "operationId": "endpoint-30",
        "tags": [
          "remote-support-cases"
        ],
        "summary": "GET /api/v1/remote-support-cases",
        "description": "Required scope: remote_support.read",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "assetId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "slaOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiRemoteSupportCaseDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/remote-support-cases/{serviceReportId}": {
      "get": {
        "operationId": "endpoint-31",
        "tags": [
          "remote-support-cases"
        ],
        "summary": "GET /api/v1/remote-support-cases/{serviceReportId}",
        "description": "Required scope: remote_support.read",
        "parameters": [
          {
            "name": "serviceReportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiRemoteSupportCaseDetailDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/service-visits": {
      "get": {
        "operationId": "endpoint-32",
        "tags": [
          "service-visits"
        ],
        "summary": "GET /api/v1/service-visits",
        "description": "Required scope: service_visits.read Maximum date window: 366 days.",
        "parameters": [
          {
            "name": "fromUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "toUtc",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiServiceVisitDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    },
    "/api/v1/vendors": {
      "get": {
        "operationId": "endpoint-33",
        "tags": [
          "vendors"
        ],
        "summary": "GET /api/v1/vendors",
        "description": "Required scope: vendors.read",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PublicApiVendorDto"
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "hasMore": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or date window"
          },
          "401": {
            "description": "Missing or invalid key"
          },
          "403": {
            "description": "Missing scope or required license"
          },
          "404": {
            "description": "Record not found or unavailable to the organization"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "SepoloApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Sepolo-Api-Key"
      },
      "BearerApiKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Organization API key in bearer format; not an OAuth token flow"
      }
    },
    "schemas": {
      "PublicApiAgreementDto": {
        "type": "object",
        "properties": {
          "agreementId": {
            "type": "string",
            "format": "uuid"
          },
          "agreementType": {
            "type": "string"
          },
          "agreementKind": {
            "type": "string"
          },
          "agreementNumber": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "customerDirectoryId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "externalSystem": {
            "type": "string"
          },
          "externalCustomerId": {
            "type": "string"
          },
          "customerName": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "contractAmount": {
            "type": "number"
          },
          "includesLabor": {
            "type": "boolean"
          },
          "includesTravel": {
            "type": "boolean"
          },
          "includesRemoteSupport": {
            "type": "boolean"
          },
          "partsCoverage": {
            "type": "string"
          },
          "partsCoverageLimitText": {
            "type": "string"
          },
          "serviceDeliveryManagerName": {
            "type": "string"
          },
          "serviceDeliveryManagerEmail": {
            "type": "string"
          },
          "proposedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "followUpAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "wonAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lostAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PublicApiAgreementDetailDto": {
        "type": "object",
        "properties": {
          "agreement": {
            "$ref": "#/components/schemas/PublicApiAgreementDto"
          },
          "sla": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicApiSlaTermsDto"
              }
            ],
            "nullable": true
          },
          "coverage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAgreementCoverageDto"
            }
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAgreementAssetDto"
            }
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAgreementResourceDto"
            }
          },
          "supportHourBuckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiAgreementSupportBucketDto"
            }
          }
        }
      },
      "PublicApiSlaTermsDto": {
        "type": "object",
        "properties": {
          "responseHours": {
            "type": "integer",
            "format": "int32"
          },
          "daysMask": {
            "type": "integer",
            "format": "int32"
          },
          "days": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "startTime": {
            "type": "string",
            "example": "00:30:00"
          },
          "endTime": {
            "type": "string",
            "example": "00:30:00"
          },
          "includesPublicHolidays": {
            "type": "boolean"
          },
          "currentAverageResponseHours": {
            "type": "number"
          }
        }
      },
      "PublicApiAgreementCoverageDto": {
        "type": "object",
        "properties": {
          "coverageId": {
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "type": "string"
          },
          "assetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assetTypeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "customerDirectoryId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "siteName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "coverageStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "coverageEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PublicApiAgreementAssetDto": {
        "type": "object",
        "properties": {
          "agreementAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "assetTypeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assetName": {
            "type": "string"
          },
          "taskDescription": {
            "type": "string"
          },
          "frequencyUnit": {
            "type": "string"
          },
          "frequencyEvery": {
            "type": "integer",
            "format": "int32"
          },
          "plannedDurationHours": {
            "type": "number"
          },
          "visitsPerYear": {
            "type": "number"
          },
          "firstPlannedVisitDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastGeneratedVisitDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "PublicApiAgreementResourceDto": {
        "type": "object",
        "properties": {
          "agreementResourceId": {
            "type": "string",
            "format": "uuid"
          },
          "resourceId": {
            "type": "string",
            "format": "uuid"
          },
          "resourceName": {
            "type": "string"
          },
          "isRateSource": {
            "type": "boolean"
          }
        }
      },
      "PublicApiAgreementSupportBucketDto": {
        "type": "object",
        "properties": {
          "bucketId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "supportLevel": {
            "type": "integer",
            "format": "int32"
          },
          "billingWindow": {
            "type": "string"
          },
          "includedMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "includedHours": {
            "type": "number"
          },
          "consumedMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "remainingMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "hourPrice": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "PublicApiAppointmentDto": {
        "type": "object",
        "properties": {
          "appointmentId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "subject": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "startTimeUtc": {
            "type": "string",
            "format": "date-time"
          },
          "endTimeUtc": {
            "type": "string",
            "format": "date-time"
          },
          "isAllDay": {
            "type": "boolean"
          },
          "calendarId": {
            "type": "integer",
            "format": "int32"
          },
          "timezoneKey": {
            "type": "string"
          },
          "recurrenceRule": {
            "type": "string"
          },
          "recurrenceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "recurrenceException": {
            "type": "string"
          },
          "createdUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedUtc": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PublicApiCustomerDto": {
        "type": "object",
        "properties": {
          "customerDirectoryId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "externalSystem": {
            "type": "string"
          },
          "externalCustomerId": {
            "type": "string"
          },
          "customerNumber": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PublicApiDeviceDto": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string"
          },
          "deviceName": {
            "type": "string"
          },
          "deviceType": {
            "type": "integer",
            "format": "int32"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "groupId": {
            "type": "integer",
            "format": "int32"
          },
          "deviceLocation": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "deviceStatus": {
            "type": "integer",
            "format": "int32"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "modelName": {
            "type": "string"
          },
          "equipmentType": {
            "type": "string"
          },
          "calculatedNextService": {
            "type": "string",
            "format": "date-time"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "lastTelemetryAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "nullable": true
          },
          "humidity": {
            "type": "number",
            "nullable": true
          },
          "batteryVoltage": {
            "type": "number",
            "nullable": true
          },
          "batteryPercentage": {
            "type": "number",
            "nullable": true
          }
        }
      },
      "PublicApiTelemetryDto": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string"
          },
          "stamp": {
            "type": "string",
            "format": "date-time"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "temperature": {
            "type": "number"
          },
          "humidity": {
            "type": "number"
          },
          "batteryVoltage": {
            "type": "number"
          },
          "batteryCurrent": {
            "type": "number"
          },
          "batteryPercentage": {
            "type": "number"
          },
          "current": {
            "type": "number"
          },
          "signalQuality": {
            "type": "number"
          },
          "railTemperature": {
            "type": "number"
          },
          "tiltX": {
            "type": "number"
          },
          "tiltY": {
            "type": "number"
          },
          "tiltZ": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "telemetryType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycleId": {
            "type": "string"
          },
          "cycleSampleIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycleSampleOffsetMs": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycleDurationMs": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycleSampleCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "schemaVersion": {
            "type": "string"
          },
          "pressure1Bar": {
            "type": "number",
            "nullable": true
          },
          "pressure2Bar": {
            "type": "number",
            "nullable": true
          },
          "endStop1": {
            "type": "boolean",
            "nullable": true
          },
          "endStop2": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "PublicApiMovementDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deviceId": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "stop": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "number"
          },
          "startCurrent": {
            "type": "number"
          },
          "stopCurrent": {
            "type": "number"
          },
          "averageCurrent": {
            "type": "number"
          },
          "peakCurrent": {
            "type": "number"
          },
          "cycleCount": {
            "type": "integer",
            "format": "int32"
          },
          "isAnomalySuggested": {
            "type": "boolean"
          },
          "anomalyScore": {
            "type": "number",
            "nullable": true
          },
          "anomalyReason": {
            "type": "string"
          },
          "modelVersion": {
            "type": "string"
          },
          "baselineMean": {
            "type": "number",
            "nullable": true
          },
          "baselineStd": {
            "type": "number",
            "nullable": true
          },
          "anomalyDecisionLabel": {
            "type": "string"
          },
          "anomalyDecisionAction": {
            "type": "string"
          },
          "anomalyDecisionConfidence": {
            "type": "number",
            "nullable": true
          },
          "anomalyDecisionReason": {
            "type": "string"
          },
          "anomalyPatternId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "estimatedNextService": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "currentSignature": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicApiMovementSignatureDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "PublicApiMovementSignatureDto": {
        "type": "object",
        "properties": {
          "movementId": {
            "type": "string",
            "format": "uuid"
          },
          "deviceId": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "stop": {
            "type": "string",
            "format": "date-time"
          },
          "sampleCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "medianSampleIntervalMs": {
            "type": "number",
            "nullable": true
          },
          "averageCurrent": {
            "type": "number",
            "nullable": true
          },
          "peakCurrent": {
            "type": "number",
            "nullable": true
          },
          "currentAreaAmpSeconds": {
            "type": "number",
            "nullable": true
          },
          "currentRms": {
            "type": "number",
            "nullable": true
          },
          "currentStdDev": {
            "type": "number",
            "nullable": true
          },
          "startupSlopeAmpPerSecond": {
            "type": "number",
            "nullable": true
          },
          "earlyMeanCurrent": {
            "type": "number",
            "nullable": true
          },
          "plateauMeanCurrent": {
            "type": "number",
            "nullable": true
          },
          "endMeanCurrent": {
            "type": "number",
            "nullable": true
          },
          "observedDurationSeconds": {
            "type": "number",
            "nullable": true
          },
          "highLoadDurationSeconds": {
            "type": "number",
            "nullable": true
          },
          "peakHoldDurationSeconds": {
            "type": "number",
            "nullable": true
          },
          "lowLoadTailDurationSeconds": {
            "type": "number",
            "nullable": true
          },
          "rampDownSlopeAmpPerSecond": {
            "type": "number",
            "nullable": true
          },
          "currentP10": {
            "type": "number",
            "nullable": true
          },
          "currentP50": {
            "type": "number",
            "nullable": true
          },
          "currentP90": {
            "type": "number",
            "nullable": true
          },
          "clippedSampleRatio": {
            "type": "number",
            "nullable": true
          },
          "shapeJson": {
            "type": "string"
          }
        }
      },
      "PublicApiPointGuardCycleDto": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string"
          },
          "cycleId": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "stop": {
            "type": "string",
            "format": "date-time"
          },
          "samples": {
            "type": "integer",
            "format": "int32"
          },
          "cycleDurationMs": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycleSampleCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "averageCurrent": {
            "type": "number",
            "nullable": true
          },
          "peakCurrent": {
            "type": "number",
            "nullable": true
          },
          "minCurrent": {
            "type": "number",
            "nullable": true
          }
        }
      },
      "PublicApiImpactRelationshipTypeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "directionLabel": {
            "type": "string",
            "nullable": true
          },
          "reverseLabel": {
            "type": "string",
            "nullable": true
          },
          "isSystemDefault": {
            "type": "boolean"
          }
        }
      },
      "PublicApiImpactRelationshipDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "sourceAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "sourceAssetName": {
            "type": "string",
            "nullable": true
          },
          "targetAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "targetAssetName": {
            "type": "string",
            "nullable": true
          },
          "relationshipTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "relationshipTypeName": {
            "type": "string",
            "nullable": true
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isBlockingDependency": {
            "type": "boolean"
          },
          "hasRedundancy": {
            "type": "boolean"
          },
          "failureImpactDescription": {
            "type": "string",
            "nullable": true
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "notifyRole": {
            "type": "string",
            "nullable": true
          },
          "notifyEmail": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiCreateImpactRelationshipRequest": {
        "type": "object",
        "properties": {
          "sourceAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "targetAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "relationshipTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isBlockingDependency": {
            "type": "boolean"
          },
          "hasRedundancy": {
            "type": "boolean"
          },
          "failureImpactDescription": {
            "type": "string",
            "nullable": true
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "notifyRole": {
            "type": "string",
            "nullable": true
          },
          "notifyEmail": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiBusinessCapabilityDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "criticalityLevel": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "ownerName": {
            "type": "string",
            "nullable": true
          },
          "ownerEmail": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiCreateBusinessCapabilityRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "criticalityLevel": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "ownerName": {
            "type": "string",
            "nullable": true
          },
          "ownerEmail": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiLinkAssetCapabilityRequest": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "businessCapabilityId": {
            "type": "string",
            "format": "uuid"
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isEssential": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiUpdateAssetCapabilityLinkRequest": {
        "type": "object",
        "properties": {
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isEssential": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiAssetCapabilityLinkDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "assetName": {
            "type": "string",
            "nullable": true
          },
          "businessCapabilityId": {
            "type": "string",
            "format": "uuid"
          },
          "businessCapabilityName": {
            "type": "string",
            "nullable": true
          },
          "criticalityLevel": {
            "type": "integer",
            "format": "int32"
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isEssential": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiImpactAnalysisDto": {
        "type": "object",
        "properties": {
          "rootAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "rootAssetName": {
            "type": "string"
          },
          "impactedAssets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactedAssetDto"
            }
          },
          "impactedCapabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactedCapabilityDto"
            }
          },
          "maxImpactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedTotalDowntimeCostPerHour": {
            "type": "number"
          },
          "recommendation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicApiImpactRecommendationDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "PublicApiImpactedAssetDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "assetName": {
            "type": "string"
          },
          "sourceAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "sourceAssetName": {
            "type": "string"
          },
          "relationshipType": {
            "type": "string"
          },
          "depth": {
            "type": "integer",
            "format": "int32"
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isBlockingDependency": {
            "type": "boolean"
          },
          "hasRedundancy": {
            "type": "boolean"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "failureImpactDescription": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiImpactedCapabilityDto": {
        "type": "object",
        "properties": {
          "businessCapabilityId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "assetName": {
            "type": "string"
          },
          "criticalityLevel": {
            "type": "integer",
            "format": "int32"
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isEssential": {
            "type": "boolean"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "ownerName": {
            "type": "string",
            "nullable": true
          },
          "ownerEmail": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiImpactRecommendationDto": {
        "type": "object",
        "properties": {
          "priority": {
            "type": "string"
          },
          "priorityRank": {
            "type": "integer",
            "format": "int32"
          },
          "maxImpactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number"
          },
          "affectedAssetCount": {
            "type": "integer",
            "format": "int32"
          },
          "affectedBusinessFunctionCount": {
            "type": "integer",
            "format": "int32"
          },
          "recommendedAction": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "considerEarliestPossibleResponse": {
            "type": "boolean"
          }
        }
      },
      "PublicApiImpactGraphDto": {
        "type": "object",
        "properties": {
          "rootAsset": {
            "$ref": "#/components/schemas/PublicApiImpactGraphRootDto"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactGraphNodeDto"
            }
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactGraphLinkDto"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/PublicApiImpactGraphSummaryDto"
          },
          "recommendation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicApiImpactRecommendationDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "PublicApiImpactGraphRootDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "nodeId": {
            "type": "string"
          }
        }
      },
      "PublicApiImpactGraphNodeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "assetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "businessCapabilityId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "depth": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "isBlockingDependency": {
            "type": "boolean"
          },
          "hasRedundancy": {
            "type": "boolean"
          },
          "isEssential": {
            "type": "boolean"
          },
          "ownerName": {
            "type": "string",
            "nullable": true
          },
          "ownerEmail": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiImpactGraphLinkDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sourceNodeId": {
            "type": "string"
          },
          "targetNodeId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "isBlockingDependency": {
            "type": "boolean"
          },
          "hasRedundancy": {
            "type": "boolean"
          },
          "isEssential": {
            "type": "boolean"
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiImpactGraphSummaryDto": {
        "type": "object",
        "properties": {
          "assetCount": {
            "type": "integer",
            "format": "int32"
          },
          "businessFunctionCount": {
            "type": "integer",
            "format": "int32"
          },
          "linkCount": {
            "type": "integer",
            "format": "int32"
          },
          "maxImpactLevel": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedTotalDowntimeCostPerHour": {
            "type": "number"
          }
        }
      },
      "PublicApiImpactMappingImportResponse": {
        "type": "object",
        "properties": {
          "committed": {
            "type": "boolean"
          },
          "validRows": {
            "type": "integer",
            "format": "int32"
          },
          "skippedRows": {
            "type": "integer",
            "format": "int32"
          },
          "businessFunctions": {
            "type": "integer",
            "format": "int32"
          },
          "relationships": {
            "type": "integer",
            "format": "int32"
          },
          "assetBusinessFunctionLinks": {
            "type": "integer",
            "format": "int32"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactMappingImportRowResultDto"
            }
          }
        }
      },
      "PublicApiImpactMappingImportRowResultDto": {
        "type": "object",
        "properties": {
          "rowNumber": {
            "type": "integer",
            "format": "int32"
          },
          "rowType": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "PublicApiImpactMappingImportRequest": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiImpactMappingImportRowDto"
            }
          }
        }
      },
      "PublicApiImpactMappingImportRowDto": {
        "type": "object",
        "properties": {
          "rowType": {
            "type": "string",
            "nullable": true
          },
          "businessFunctionName": {
            "type": "string",
            "nullable": true
          },
          "businessFunctionDescription": {
            "type": "string",
            "nullable": true
          },
          "businessFunctionCriticality": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "businessFunctionCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "businessFunctionOwnerName": {
            "type": "string",
            "nullable": true
          },
          "businessFunctionOwnerEmail": {
            "type": "string",
            "nullable": true
          },
          "sourceAssetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "sourceAssetName": {
            "type": "string",
            "nullable": true
          },
          "targetAssetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "targetAssetName": {
            "type": "string",
            "nullable": true
          },
          "relationshipTypeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relationshipType": {
            "type": "string",
            "nullable": true
          },
          "impactLevel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isBlockingDependency": {
            "type": "boolean",
            "nullable": true
          },
          "hasBackup": {
            "type": "boolean",
            "nullable": true
          },
          "hasRedundancy": {
            "type": "boolean",
            "nullable": true
          },
          "failureImpactDescription": {
            "type": "string",
            "nullable": true
          },
          "estimatedDowntimeCostPerHour": {
            "type": "number",
            "nullable": true
          },
          "notifyRole": {
            "type": "string",
            "nullable": true
          },
          "notifyEmail": {
            "type": "string",
            "nullable": true
          },
          "assetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assetName": {
            "type": "string",
            "nullable": true
          },
          "businessCapabilityId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assetBusinessFunctionName": {
            "type": "string",
            "nullable": true
          },
          "assetFunctionImpactLevel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isEssential": {
            "type": "boolean",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicApiInventoryPartDto": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string",
            "format": "uuid"
          },
          "partName": {
            "type": "string"
          },
          "partNumber": {
            "type": "string"
          },
          "itemNo": {
            "type": "string"
          },
          "vendorName": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "costPrice": {
            "type": "number"
          },
          "salesPrice": {
            "type": "number"
          },
          "status": {
            "type": "boolean"
          },
          "externalSystem": {
            "type": "string"
          },
          "externalPartId": {
            "type": "string"
          },
          "isErpManaged": {
            "type": "boolean"
          }
        }
      },
      "PublicApiMeResponse": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "clientId": {
            "type": "string"
          },
          "clientName": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "version": {
            "type": "string"
          },
          "rateLimit": {
            "$ref": "#/components/schemas/PublicApiRateLimitDto"
          },
          "allowedGroupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "allowedCustomerIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicApiRateLimitDto": {
        "type": "object",
        "properties": {
          "requestsPerMinute": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "requestsPerDay": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "PublicApiRemoteSupportCaseDto": {
        "type": "object",
        "properties": {
          "serviceReportId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceVisitId": {
            "type": "string",
            "format": "uuid"
          },
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "caseNumber": {
            "type": "string"
          },
          "reportNumber": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "reasonForService": {
            "type": "string"
          },
          "customerName": {
            "type": "string"
          },
          "assetName": {
            "type": "string"
          },
          "state": {
            "type": "integer",
            "format": "int32"
          },
          "stateText": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "plannedStart": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actualStartOfInspection": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actualEndOfInspection": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "hasActiveTimer": {
            "type": "boolean"
          },
          "activeTimerStartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "remoteWorkMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "closedRemoteWorkMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "timeEntryCount": {
            "type": "integer",
            "format": "int32"
          },
          "remoteSupporters": {
            "type": "string"
          },
          "remoteSupporterCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastRemoteSupporter": {
            "type": "string"
          },
          "hasEscalation": {
            "type": "boolean"
          },
          "escalationLevel": {
            "type": "string"
          },
          "hasSlaAgreement": {
            "type": "boolean"
          },
          "slaAgreementNumber": {
            "type": "string"
          },
          "slaAgreementName": {
            "type": "string"
          },
          "slaCoverageScope": {
            "type": "string"
          },
          "slaResponseHours": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "slaDueAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "slaMinutesRemaining": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "PublicApiRemoteSupportCaseDetailDto": {
        "type": "object",
        "properties": {
          "case": {
            "$ref": "#/components/schemas/PublicApiRemoteSupportCaseDto"
          },
          "description": {
            "type": "string"
          },
          "problemSummary": {
            "type": "string"
          },
          "solution": {
            "type": "string"
          },
          "customerEmail": {
            "type": "string"
          },
          "customerPhone": {
            "type": "string"
          },
          "customerAddress": {
            "type": "string"
          },
          "primaryContactName": {
            "type": "string"
          },
          "primaryContactJobTitle": {
            "type": "string"
          },
          "primaryContactEmail": {
            "type": "string"
          },
          "primaryContactPhone": {
            "type": "string"
          },
          "timeEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicApiRemoteSupportTimeEntryDto"
            }
          }
        }
      },
      "PublicApiRemoteSupportTimeEntryDto": {
        "type": "object",
        "properties": {
          "remoteSupportTimeEntryId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "displayName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "resourceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "resourceName": {
            "type": "string"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "endedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "durationMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "appliedPricePerHour": {
            "type": "number",
            "nullable": true
          },
          "totalPrice": {
            "type": "number",
            "nullable": true
          },
          "supportAgreementId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "supportAgreementName": {
            "type": "string"
          },
          "supportBucketName": {
            "type": "string"
          },
          "coveredMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "overageMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "overageAmount": {
            "type": "number"
          },
          "coverageStatus": {
            "type": "string"
          },
          "escalationLevel": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "PublicApiServiceVisitDto": {
        "type": "object",
        "properties": {
          "serviceVisitId": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "format": "uuid"
          },
          "typeText": {
            "type": "string"
          },
          "state": {
            "type": "integer",
            "format": "int32"
          },
          "stateText": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "example": "00:30:00",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "example": "00:30:00",
            "nullable": true
          },
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "externalSystem": {
            "type": "string"
          },
          "externalCustomerId": {
            "type": "string"
          },
          "estimatedCost": {
            "type": "number",
            "nullable": true
          },
          "actualCost": {
            "type": "number",
            "nullable": true
          },
          "slaServiceContractId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "slaResponseMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "slaDueAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "maintenanceContractId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "maintenanceContractAssetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        }
      },
      "PublicApiVendorDto": {
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "contactName": {
            "type": "string"
          },
          "contactEmail": {
            "type": "string"
          },
          "contactPhone": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "isExternal": {
            "type": "boolean"
          },
          "externalSystem": {
            "type": "string"
          },
          "externalVendorNumber": {
            "type": "string"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
