{
  "openapi": "3.0.4",
  "info": {
    "title": "Agency Dispatch Pro API",
    "description": "REST API for process serving, investigation, and notary operations. See /Public/Help/Api for authentication and usage guidance.",
    "version": "v1"
  },
  "paths": {
    "/api/v1/access-points": {
      "get": {
        "tags": [
          "AccessPoints"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "AccessPoints"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAccessPointRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAccessPointRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAccessPointRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/access-points/{id}": {
      "get": {
        "tags": [
          "AccessPoints"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "AccessPoints"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessPointRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessPointRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessPointRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AccessPoints"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/address-warnings": {
      "get": {
        "tags": [
          "AddressWarnings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "AddressWarnings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAddressNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAddressNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAddressNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/address-warnings/for-address": {
      "get": {
        "tags": [
          "AddressWarnings"
        ],
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/address-warnings/{id}": {
      "put": {
        "tags": [
          "AddressWarnings"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAddressNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAddressNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAddressNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AddressWarnings"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents": {
      "get": {
        "tags": [
          "CaseDocuments"
        ],
        "parameters": [
          {
            "name": "processServingCaseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "investigationCaseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "CaseDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/{id}": {
      "get": {
        "tags": [
          "CaseDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "CaseDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/{id}/content": {
      "get": {
        "tags": [
          "CaseDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/batch": {
      "post": {
        "tags": [
          "CaseDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentsBatchRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentsBatchRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocumentsBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/order": {
      "put": {
        "tags": [
          "CaseDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderDocumentsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderDocumentsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderDocumentsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/{id}/toggle-visible": {
      "post": {
        "tags": [
          "CaseDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/batch-download": {
      "post": {
        "tags": [
          "CaseDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDownloadRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDownloadRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDownloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/email": {
      "post": {
        "tags": [
          "CaseDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailDocumentsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailDocumentsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmailDocumentsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{investigationCaseId}/retainer": {
      "get": {
        "tags": [
          "CaseRetainer"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "CaseRetainer"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRetainerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRetainerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRetainerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{investigationCaseId}/retainer/transfer-credit": {
      "post": {
        "tags": [
          "CaseRetainer"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRetainerCreditRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRetainerCreditRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRetainerCreditRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-conversations": {
      "get": {
        "tags": [
          "ClientConversations"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ClientConversations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientConversationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientConversationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientConversationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-conversations/{id}": {
      "get": {
        "tags": [
          "ClientConversations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-conversations/{id}/reply": {
      "post": {
        "tags": [
          "ClientConversations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplyClientConversationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplyClientConversationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplyClientConversationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/credit/{clientId}": {
      "get": {
        "tags": [
          "ClientCredit"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/credit/{clientId}/adjust": {
      "post": {
        "tags": [
          "ClientCredit"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustCreditRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustCreditRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustCreditRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-intake": {
      "get": {
        "tags": [
          "ClientIntake"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-intake/{id}": {
      "get": {
        "tags": [
          "ClientIntake"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-intake/{id}/approve": {
      "post": {
        "tags": [
          "ClientIntake"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveIntakeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveIntakeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveIntakeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/client-intake/{id}/reject": {
      "post": {
        "tags": [
          "ClientIntake"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectIntakeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectIntakeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RejectIntakeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/clients": {
      "get": {
        "tags": [
          "Clients"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Clients"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/clients/{id}": {
      "get": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dispatch/dashboard": {
      "get": {
        "tags": [
          "Dispatch"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dispatch/jobs": {
      "get": {
        "tags": [
          "Dispatch"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dispatch/roster": {
      "get": {
        "tags": [
          "Dispatch"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dispatch/alerts": {
      "get": {
        "tags": [
          "Dispatch"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dispatch/alerts/{id}/resolve": {
      "post": {
        "tags": [
          "Dispatch"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/expenses": {
      "get": {
        "tags": [
          "Expenses"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Expenses"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/expenses/{id}": {
      "put": {
        "tags": [
          "Expenses"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Expenses"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/field-tasks": {
      "get": {
        "tags": [
          "FieldTasks"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "FieldTasks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFieldTaskRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFieldTaskRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFieldTaskRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/field-tasks/{id}": {
      "get": {
        "tags": [
          "FieldTasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "FieldTasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "FieldTasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/field-tasks/{id}/status": {
      "post": {
        "tags": [
          "FieldTasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskStatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskStatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFieldTaskStatusRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/quotes/{id}": {
      "get": {
        "tags": [
          "InvestigationQuotes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "InvestigationQuotes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "InvestigationQuotes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/quotes": {
      "get": {
        "tags": [
          "InvestigationQuotes"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "InvestigationQuotes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveInvestigationQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/quotes/calculate": {
      "post": {
        "tags": [
          "InvestigationQuotes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteInputsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteInputsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteInputsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv": {
      "get": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Investigations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}": {
      "get": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects": {
      "get": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSubjectRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSubjectRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddSubjectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}": {
      "put": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubjectRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubjectRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubjectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/addresses": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAddressRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAddressRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddAddressRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/phones": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddPhoneRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddPhoneRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddPhoneRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/vehicles": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddVehicleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddVehicleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddVehicleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/updates": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/updates/{updateId}": {
      "put": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/notes": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/notes/{noteId}/toggle-visible": {
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/surveillance": {
      "get": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSurveillanceEntryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSurveillanceEntryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddSurveillanceEntryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/surveillance/{entryId}": {
      "put": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "entryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSurveillanceEntryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSurveillanceEntryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSurveillanceEntryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "entryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/addresses/{addressId}": {
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "addressId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/phones/{phoneId}": {
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "phoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/inv/{id}/subjects/{subjectId}/vehicles/{vehicleId}": {
      "delete": {
        "tags": [
          "Investigations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/InvoiceStatus"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/{id}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvoiceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvoiceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/{id}/send": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/{id}/mark-paid": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkPaidRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkPaidRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MarkPaidRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/{id}/void": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/{id}/pdf": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/bill-case-items": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillCaseItemsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BillCaseItemsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BillCaseItemsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/retainer": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/invoices/topup": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetainerOrTopUpInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages": {
      "get": {
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages/thread": {
      "get": {
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "with",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages/unread-count": {
      "get": {
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages/close": {
      "post": {
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages/reopen": {
      "post": {
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CloseConversationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/messages/{id}": {
      "delete": {
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "actingUserId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/journal": {
      "get": {
        "tags": [
          "NotaryJournal"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/journal/{id}": {
      "get": {
        "tags": [
          "NotaryJournal"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/journal/{id}/void": {
      "post": {
        "tags": [
          "NotaryJournal"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidJournalEntryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidJournalEntryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VoidJournalEntryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/payouts": {
      "get": {
        "tags": [
          "Payouts"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/PayoutStatus"
            }
          },
          {
            "name": "contractorId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Payouts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/payouts/{id}": {
      "get": {
        "tags": [
          "Payouts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/payouts/{id}/send": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/payouts/{id}/pdf": {
      "get": {
        "tags": [
          "Payouts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps": {
      "get": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ProcessServing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}": {
      "get": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/attempts": {
      "get": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAttemptRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAttemptRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddAttemptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/attempts/{attemptId}": {
      "put": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAttemptRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAttemptRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAttemptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/updates": {
      "post": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/updates/{updateId}": {
      "put": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/notes": {
      "post": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/notes/{noteId}": {
      "put": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditNoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditNoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/{id}/notes/{noteId}/toggle-visible": {
      "post": {
        "tags": [
          "ProcessServing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/quotes": {
      "get": {
        "tags": [
          "ServiceQuotes"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ServiceQuotes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/quotes/generate": {
      "post": {
        "tags": [
          "ServiceQuotes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateServiceQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ps/quotes/{quoteId}/save-to-case": {
      "post": {
        "tags": [
          "ServiceQuotes"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveServiceQuoteToCaseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveServiceQuoteToCaseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveServiceQuoteToCaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-clients": {
      "get": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "SigningClients"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningClientRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-clients/{id}": {
      "get": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningClientRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-clients/{id}/contacts": {
      "post": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSigningClientContactRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSigningClientContactRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddSigningClientContactRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-clients/{id}/contacts/{contactId}/toggle-active": {
      "post": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-clients/{id}/contacts/{contactId}/invite-portal": {
      "post": {
        "tags": [
          "SigningClients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/documents": {
      "get": {
        "tags": [
          "SigningDocuments"
        ],
        "parameters": [
          {
            "name": "signingJobId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "SigningDocuments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSigningDocumentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSigningDocumentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSigningDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/documents/{id}/content": {
      "get": {
        "tags": [
          "SigningDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/documents/{id}": {
      "delete": {
        "tags": [
          "SigningDocuments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/invoices": {
      "get": {
        "tags": [
          "SigningInvoices"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SigningInvoiceStatus"
            }
          },
          {
            "name": "signingJobId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "SigningInvoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningInvoiceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningInvoiceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/invoices/{id}": {
      "get": {
        "tags": [
          "SigningInvoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/invoices/{id}/mark-sent": {
      "post": {
        "tags": [
          "SigningInvoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/invoices/{id}/mark-paid": {
      "post": {
        "tags": [
          "SigningInvoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkInvoicePaidRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkInvoicePaidRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MarkInvoicePaidRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/invoices/{id}/void": {
      "post": {
        "tags": [
          "SigningInvoices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs": {
      "get": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SigningJobStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "SigningJobs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSigningJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs/{id}": {
      "get": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSigningJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs/{id}/advance-status": {
      "post": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvanceStatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvanceStatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdvanceStatusRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs/{id}/signers": {
      "post": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSignerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSignerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddSignerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs/{id}/signers/{signerId}": {
      "delete": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "signerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notary/signing-jobs/{id}/notarial-acts": {
      "post": {
        "tags": [
          "SigningJobs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNotarialActRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNotarialActRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddNotarialActRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/time-entries": {
      "get": {
        "tags": [
          "TimeEntries"
        ],
        "parameters": [
          {
            "name": "investigationCaseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TimeEntries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTimeEntryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTimeEntryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTimeEntryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/time-entries/{id}": {
      "put": {
        "tags": [
          "TimeEntries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTimeEntryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTimeEntryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTimeEntryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "TimeEntries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteUserRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteUserRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InviteUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users/{id}/role": {
      "put": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeRoleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeRoleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users/{id}/permissions": {
      "put": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users/{id}/activate": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users/{id}/deactivate": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/users/{id}/audit-history": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccessPointAddressRequest": {
        "type": "object",
        "properties": {
          "displayAddress": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddAddressRequest": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "isCurrent": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddAttemptRequest": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/ServiceResult"
          },
          "addressAttempted": {
            "type": "string",
            "nullable": true
          },
          "attemptDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "servedBy": {
            "type": "string",
            "nullable": true
          },
          "recipientDescription": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddNotarialActRequest": {
        "type": "object",
        "properties": {
          "signerId": {
            "type": "integer",
            "format": "int32"
          },
          "documentName": {
            "type": "string",
            "nullable": true
          },
          "actType": {
            "$ref": "#/components/schemas/NotarialActType"
          },
          "idVerificationMethod": {
            "$ref": "#/components/schemas/IdVerificationMethod"
          },
          "fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "notaryUserId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddNoteRequest": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddPhoneRequest": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "phoneType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddSignerRequest": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "idType": {
            "$ref": "#/components/schemas/SigningIdType"
          },
          "idState": {
            "type": "string",
            "nullable": true
          },
          "idNumber": {
            "type": "string",
            "nullable": true
          },
          "idExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isPrimarySigner": {
            "type": "boolean",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddSigningClientContactRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddSubjectRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "dob": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "race": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "lastKnownAddress": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "ssn": {
            "type": "string",
            "nullable": true
          },
          "driverLicenseNumber": {
            "type": "string",
            "nullable": true
          },
          "driverLicenseState": {
            "type": "string",
            "nullable": true
          },
          "hairColor": {
            "type": "string",
            "nullable": true
          },
          "eyeColor": {
            "type": "string",
            "nullable": true
          },
          "height": {
            "type": "string",
            "nullable": true
          },
          "weight": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddSurveillanceEntryRequest": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startMileage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "endMileage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "videoActivity": {
            "type": "string",
            "nullable": true
          },
          "narrativeText": {
            "type": "string",
            "nullable": true
          },
          "investigatorName": {
            "type": "string",
            "nullable": true
          },
          "surveillanceBy": {
            "type": "string",
            "nullable": true
          },
          "isViewableByClient": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddUpdateRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "nullable": true
          },
          "updateType": {
            "$ref": "#/components/schemas/CaseUpdateType"
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          },
          "isClientVisible": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddVehicleRequest": {
        "type": "object",
        "properties": {
          "year": {
            "type": "string",
            "nullable": true
          },
          "make": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "licensePlate": {
            "type": "string",
            "nullable": true
          },
          "licensePlateState": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdjustCreditRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdvanceStatusRequest": {
        "type": "object",
        "properties": {
          "newStatus": {
            "$ref": "#/components/schemas/SigningJobStatus"
          }
        },
        "additionalProperties": false
      },
      "ApproveIntakeRequest": {
        "type": "object",
        "properties": {
          "caseType": {
            "type": "string",
            "nullable": true
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reviewNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BatchDownloadRequest": {
        "type": "object",
        "properties": {
          "documentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BillCaseItemsRequest": {
        "type": "object",
        "properties": {
          "investigationCaseId": {
            "type": "integer",
            "format": "int32"
          },
          "destination": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "invoiceTitle": {
            "type": "string",
            "nullable": true
          },
          "timeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "expenseIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CaseDocumentType": {
        "enum": [
          "CoverSheet",
          "SourceDocument",
          "Affidavit",
          "Photo",
          "Video",
          "Correspondence",
          "DataReport",
          "Other"
        ],
        "type": "string"
      },
      "CasePriority": {
        "enum": [
          "Routine",
          "Rush",
          "SameDay",
          "Urgent"
        ],
        "type": "string"
      },
      "CaseStatus": {
        "enum": [
          "New",
          "Open",
          "Pending",
          "Completed",
          "Cancelled"
        ],
        "type": "string"
      },
      "CaseUpdateType": {
        "enum": [
          "GeneralUpdate",
          "SurveillanceUpdate",
          "PreliminaryFindings",
          "BackgroundCheckResult",
          "InterviewNotes",
          "FinalReport",
          "ClientCommunication",
          "WorkStarted",
          "WorkEnded"
        ],
        "type": "string"
      },
      "ChangeRoleRequest": {
        "type": "object",
        "properties": {
          "agencyRole": {
            "type": "string",
            "nullable": true
          },
          "isOwner": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClientFlagLevel": {
        "enum": [
          "None",
          "Caution",
          "DoNotUse"
        ],
        "type": "string"
      },
      "ClientType": {
        "enum": [
          "Civilian",
          "Attorney",
          "LawFirm",
          "Insurance",
          "Agency"
        ],
        "type": "string"
      },
      "CloseConversationRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "partnerId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateAccessPointRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "accessCode": {
            "type": "string",
            "nullable": true
          },
          "gateCode": {
            "type": "string",
            "nullable": true
          },
          "callBoxCode": {
            "type": "string",
            "nullable": true
          },
          "instructions": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPointAddressRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateAddressNoteRequest": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "nullable": true
          },
          "noteText": {
            "type": "string",
            "nullable": true
          },
          "isWarning": {
            "type": "boolean",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateClientConversationRequest": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "integer",
            "format": "int32"
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "firstMessage": {
            "type": "string",
            "nullable": true
          },
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateClientRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "clientType": {
            "$ref": "#/components/schemas/ClientType"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "clientGroupId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "salesPersonName": {
            "type": "string",
            "nullable": true
          },
          "leadInvestigatorName": {
            "type": "string",
            "nullable": true
          },
          "flagLevel": {
            "$ref": "#/components/schemas/ClientFlagLevel"
          },
          "flagReason": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateExpenseRequest": {
        "type": "object",
        "properties": {
          "investigationCaseId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "expenseDate": {
            "type": "string",
            "format": "date-time"
          },
          "expenseType": {
            "$ref": "#/components/schemas/ExpenseType"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isBillable": {
            "type": "boolean",
            "nullable": true
          },
          "receiptFileName": {
            "type": "string",
            "nullable": true
          },
          "receiptContentBase64": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateFieldTaskRequest": {
        "type": "object",
        "properties": {
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "taskType": {
            "$ref": "#/components/schemas/FieldTaskType"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "scheduledStart": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "scheduledEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FieldTaskStatus"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateInvRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32"
          },
          "caseNumber": {
            "type": "string",
            "nullable": true
          },
          "investigationType": {
            "$ref": "#/components/schemas/InvestigationType"
          },
          "status": {
            "$ref": "#/components/schemas/CaseStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/CasePriority"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "preliminaryNotes": {
            "type": "string",
            "nullable": true
          },
          "dateOpened": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "externalJobNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateInvoiceRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLineItemRequest"
            },
            "nullable": true
          },
          "appliedCreditAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isRetainerInvoice": {
            "type": "boolean",
            "nullable": true
          },
          "isAccountTopUp": {
            "type": "boolean",
            "nullable": true
          },
          "sendNow": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePayoutRequest": {
        "type": "object",
        "properties": {
          "contractorUserId": {
            "type": "string",
            "nullable": true
          },
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "method": {
            "$ref": "#/components/schemas/PayoutMethod"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutLineItemRequest"
            },
            "nullable": true
          },
          "sendNow": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePsRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "caseNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CaseStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/CasePriority"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "serviceInstructions": {
            "type": "string",
            "nullable": true
          },
          "serviceAddress": {
            "type": "string",
            "nullable": true
          },
          "serviceCity": {
            "type": "string",
            "nullable": true
          },
          "serviceState": {
            "type": "string",
            "nullable": true
          },
          "serviceZip": {
            "type": "string",
            "nullable": true
          },
          "subjectPhone": {
            "type": "string",
            "nullable": true
          },
          "subjectEmail": {
            "type": "string",
            "nullable": true
          },
          "subjectDescription": {
            "type": "string",
            "nullable": true
          },
          "courtName": {
            "type": "string",
            "nullable": true
          },
          "courtCaseNumber": {
            "type": "string",
            "nullable": true
          },
          "attorneyName": {
            "type": "string",
            "nullable": true
          },
          "attorneyEmail": {
            "type": "string",
            "nullable": true
          },
          "lawFirmName": {
            "type": "string",
            "nullable": true
          },
          "dateOpened": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "externalJobNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateRetainerOrTopUpInvoiceRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CreateSigningClientRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "companyType": {
            "$ref": "#/components/schemas/SigningClientCompanyType"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSigningInvoiceRequest": {
        "type": "object",
        "properties": {
          "signingJobId": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "dueAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSigningJobRequest": {
        "type": "object",
        "properties": {
          "signingClientId": {
            "type": "integer",
            "format": "int32"
          },
          "signingClientContactId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notaryUserId": {
            "type": "string",
            "nullable": true
          },
          "loanType": {
            "$ref": "#/components/schemas/SigningLoanType"
          },
          "receivedVia": {
            "$ref": "#/components/schemas/SigningJobReceivedVia"
          },
          "scheduledAt": {
            "type": "string",
            "format": "date-time"
          },
          "borrowerName": {
            "type": "string",
            "nullable": true
          },
          "locationAddress": {
            "type": "string",
            "nullable": true
          },
          "locationCity": {
            "type": "string",
            "nullable": true
          },
          "locationState": {
            "type": "string",
            "nullable": true
          },
          "locationZip": {
            "type": "string",
            "nullable": true
          },
          "fee": {
            "type": "number",
            "format": "double"
          },
          "travelFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "printingFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "otherFees": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "confirmationNotes": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateTimeEntryRequest": {
        "type": "object",
        "properties": {
          "investigationCaseId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "workDate": {
            "type": "string",
            "format": "date-time"
          },
          "startTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "hoursWorked": {
            "type": "number",
            "format": "double"
          },
          "hourlyRate": {
            "type": "number",
            "format": "double"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EditNoteRequest": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EditUpdateRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "nullable": true
          },
          "updateType": {
            "$ref": "#/components/schemas/CaseUpdateType"
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          },
          "isClientVisible": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailDocumentsRequest": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "nullable": true
          },
          "cc": {
            "type": "string",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "body": {
            "type": "string",
            "nullable": true
          },
          "documentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExpenseType": {
        "enum": [
          "Mileage",
          "DatabaseSearch",
          "Printing",
          "Parking",
          "Tolls",
          "CourtFee",
          "Other"
        ],
        "type": "string"
      },
      "FieldTaskStatus": {
        "enum": [
          "Scheduled",
          "InProgress",
          "Completed",
          "Cancelled"
        ],
        "type": "string"
      },
      "FieldTaskType": {
        "enum": [
          "Surveillance",
          "Interview",
          "Stakeout",
          "Locate",
          "Other"
        ],
        "type": "string"
      },
      "GenerateServiceQuoteRequest": {
        "type": "object",
        "properties": {
          "serviceAddress": {
            "type": "string",
            "nullable": true
          },
          "caseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdVerificationMethod": {
        "enum": [
          "PersonalKnowledge",
          "CredibleWitness",
          "IdentificationCard"
        ],
        "type": "string"
      },
      "InvestigationType": {
        "enum": [
          "General",
          "Surveillance",
          "Locate",
          "Background",
          "Insurance",
          "Corporate",
          "Domestic",
          "Other"
        ],
        "type": "string"
      },
      "InviteUserRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "agencyRole": {
            "type": "string",
            "nullable": true
          },
          "isOwner": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceLineItemRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "InvoiceStatus": {
        "enum": [
          "Draft",
          "Sent",
          "Paid",
          "Void"
        ],
        "type": "string"
      },
      "MarkInvoicePaidRequest": {
        "type": "object",
        "properties": {
          "paymentMethodNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarkPaidRequest": {
        "type": "object",
        "properties": {
          "paidByEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NotarialActType": {
        "enum": [
          "Acknowledgment",
          "Jurat",
          "Oath",
          "Affirmation",
          "CopyCertification",
          "SignatureWitnessing",
          "Other"
        ],
        "type": "string"
      },
      "PayoutLineItemRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "rate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "PayoutMethod": {
        "enum": [
          "StripeConnect",
          "Manual"
        ],
        "type": "string"
      },
      "PayoutStatus": {
        "enum": [
          "Pending",
          "Sent",
          "Failed"
        ],
        "type": "string"
      },
      "QuoteInputsRequest": {
        "type": "object",
        "properties": {
          "specialCase": {
            "type": "boolean"
          },
          "opt1HoursPerDay": {
            "type": "number",
            "format": "double"
          },
          "opt1Day2": {
            "type": "number",
            "format": "double"
          },
          "opt1Day3": {
            "type": "number",
            "format": "double"
          },
          "opt1Day4": {
            "type": "number",
            "format": "double"
          },
          "opt2HoursPerDay": {
            "type": "number",
            "format": "double"
          },
          "opt2Day2": {
            "type": "number",
            "format": "double"
          },
          "opt2Day3": {
            "type": "number",
            "format": "double"
          },
          "opt2Day4": {
            "type": "number",
            "format": "double"
          },
          "opt3HoursPerDay": {
            "type": "number",
            "format": "double"
          },
          "opt3Day2": {
            "type": "number",
            "format": "double"
          },
          "opt3Day3": {
            "type": "number",
            "format": "double"
          },
          "opt3Day4": {
            "type": "number",
            "format": "double"
          },
          "dailyMileage": {
            "type": "number",
            "format": "double"
          },
          "dailyTravelHours": {
            "type": "number",
            "format": "double"
          },
          "contractorDailyMileage": {
            "type": "number",
            "format": "double"
          },
          "contractorDailyTravelHours": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "RejectIntakeRequest": {
        "type": "object",
        "properties": {
          "reviewNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReorderDocumentsRequest": {
        "type": "object",
        "properties": {
          "orderedIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplyClientConversationRequest": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RetainerStatus": {
        "enum": [
          "NotRequired",
          "Pending",
          "Received",
          "Low",
          "Depleted"
        ],
        "type": "string"
      },
      "SaveInvestigationQuoteRequest": {
        "type": "object",
        "properties": {
          "investigationCaseId": {
            "type": "integer",
            "format": "int32"
          },
          "quoteTitle": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "inputs": {
            "$ref": "#/components/schemas/QuoteInputsRequest"
          }
        },
        "additionalProperties": false
      },
      "SaveRetainerRequest": {
        "type": "object",
        "properties": {
          "retainerAmount": {
            "type": "number",
            "format": "double"
          },
          "retainerReceivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "hourlyRate": {
            "type": "number",
            "format": "double"
          },
          "isRetainerRequired": {
            "type": "boolean"
          },
          "retainerStatus": {
            "$ref": "#/components/schemas/RetainerStatus"
          },
          "lowRetainerThreshold": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "invoiceAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "invoiceTitle": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SaveServiceQuoteToCaseRequest": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SendMessageRequest": {
        "type": "object",
        "properties": {
          "senderUserId": {
            "type": "string",
            "nullable": true
          },
          "recipientUserIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceResult": {
        "enum": [
          "Served",
          "SubstituteService",
          "PostedAndMailed",
          "NotHome",
          "BadAddress",
          "RefusedService",
          "Evading",
          "UnableToLocate",
          "Cancelled",
          "Other"
        ],
        "type": "string"
      },
      "SigningClientCompanyType": {
        "enum": [
          "TitleCompany",
          "EscrowCompany",
          "LawFirm",
          "LenderDirect",
          "SigningService",
          "Other"
        ],
        "type": "string"
      },
      "SigningDocumentType": {
        "enum": [
          "LoanPackage",
          "IdCopy",
          "Addendum",
          "SignedPackageReturn",
          "Other"
        ],
        "type": "string"
      },
      "SigningIdType": {
        "enum": [
          "DriversLicense",
          "Passport",
          "StateId",
          "MilitaryId",
          "Other"
        ],
        "type": "string"
      },
      "SigningInvoiceStatus": {
        "enum": [
          "Draft",
          "Sent",
          "Paid",
          "Void"
        ],
        "type": "string"
      },
      "SigningJobReceivedVia": {
        "enum": [
          "Phone",
          "Email",
          "SigningService",
          "Referral",
          "Portal",
          "Other"
        ],
        "type": "string"
      },
      "SigningJobStatus": {
        "enum": [
          "Inquiry",
          "Confirmed",
          "InProgress",
          "Completed",
          "DocsShipped",
          "Invoiced",
          "Paid",
          "Cancelled"
        ],
        "type": "string"
      },
      "SigningLoanType": {
        "enum": [
          "Purchase",
          "Refinance",
          "HELOC",
          "ReverseMortgage",
          "SellerPackage",
          "GeneralNotarization",
          "Other"
        ],
        "type": "string"
      },
      "TransferRetainerCreditRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateAccessPointRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "accessCode": {
            "type": "string",
            "nullable": true
          },
          "gateCode": {
            "type": "string",
            "nullable": true
          },
          "callBoxCode": {
            "type": "string",
            "nullable": true
          },
          "instructions": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPointAddressRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateAddressNoteRequest": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "nullable": true
          },
          "noteText": {
            "type": "string",
            "nullable": true
          },
          "isWarning": {
            "type": "boolean",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateAttemptRequest": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/ServiceResult"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "recipientDescription": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateClientRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "clientType": {
            "$ref": "#/components/schemas/ClientType"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "clientGroupId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "salesPersonName": {
            "type": "string",
            "nullable": true
          },
          "leadInvestigatorName": {
            "type": "string",
            "nullable": true
          },
          "flagLevel": {
            "$ref": "#/components/schemas/ClientFlagLevel"
          },
          "flagReason": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateExpenseRequest": {
        "type": "object",
        "properties": {
          "expenseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expenseType": {
            "$ref": "#/components/schemas/ExpenseType"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean",
            "nullable": true
          },
          "receiptFileName": {
            "type": "string",
            "nullable": true
          },
          "receiptContentBase64": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateFieldTaskRequest": {
        "type": "object",
        "properties": {
          "taskType": {
            "$ref": "#/components/schemas/FieldTaskType"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "scheduledStart": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "scheduledEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FieldTaskStatus"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateFieldTaskStatusRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/FieldTaskStatus"
          }
        },
        "additionalProperties": false
      },
      "UpdateInvRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CaseStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/CasePriority"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "preliminaryNotes": {
            "type": "string",
            "nullable": true
          },
          "externalJobNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateInvoiceRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLineItemRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatePermissionsRequest": {
        "type": "object",
        "properties": {
          "permissions": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatePsRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CaseStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/CasePriority"
          },
          "assignedTo": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "serviceInstructions": {
            "type": "string",
            "nullable": true
          },
          "serviceAddress": {
            "type": "string",
            "nullable": true
          },
          "serviceCity": {
            "type": "string",
            "nullable": true
          },
          "serviceState": {
            "type": "string",
            "nullable": true
          },
          "serviceZip": {
            "type": "string",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "externalJobNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateSigningClientRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "companyType": {
            "$ref": "#/components/schemas/SigningClientCompanyType"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateSigningJobRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SigningJobStatus"
          },
          "notaryUserId": {
            "type": "string",
            "nullable": true
          },
          "loanType": {
            "$ref": "#/components/schemas/SigningLoanType"
          },
          "receivedVia": {
            "$ref": "#/components/schemas/SigningJobReceivedVia"
          },
          "scheduledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "borrowerName": {
            "type": "string",
            "nullable": true
          },
          "locationAddress": {
            "type": "string",
            "nullable": true
          },
          "locationCity": {
            "type": "string",
            "nullable": true
          },
          "locationState": {
            "type": "string",
            "nullable": true
          },
          "locationZip": {
            "type": "string",
            "nullable": true
          },
          "fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "travelFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "printingFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "otherFees": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "confirmationNotes": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "internalNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateSubjectRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "dob": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "lastKnownAddress": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "ssn": {
            "type": "string",
            "nullable": true
          },
          "driverLicenseNumber": {
            "type": "string",
            "nullable": true
          },
          "hairColor": {
            "type": "string",
            "nullable": true
          },
          "eyeColor": {
            "type": "string",
            "nullable": true
          },
          "height": {
            "type": "string",
            "nullable": true
          },
          "weight": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateSurveillanceEntryRequest": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startMileage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "endMileage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "videoActivity": {
            "type": "string",
            "nullable": true
          },
          "narrativeText": {
            "type": "string",
            "nullable": true
          },
          "investigatorName": {
            "type": "string",
            "nullable": true
          },
          "surveillanceBy": {
            "type": "string",
            "nullable": true
          },
          "isViewableByClient": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateTimeEntryRequest": {
        "type": "object",
        "properties": {
          "workDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "hoursWorked": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hourlyRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UploadDocumentFile": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "contentBase64": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "$ref": "#/components/schemas/CaseDocumentType"
          }
        },
        "additionalProperties": false
      },
      "UploadDocumentRequest": {
        "type": "object",
        "properties": {
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "contentBase64": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "$ref": "#/components/schemas/CaseDocumentType"
          },
          "isClientVisible": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UploadDocumentsBatchRequest": {
        "type": "object",
        "properties": {
          "processServingCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "investigationCaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UploadDocumentFile"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UploadSigningDocumentRequest": {
        "type": "object",
        "properties": {
          "signingJobId": {
            "type": "integer",
            "format": "int32"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "contentBase64": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "$ref": "#/components/schemas/SigningDocumentType"
          }
        },
        "additionalProperties": false
      },
      "VoidJournalEntryRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "Format: 'ApiKey <your_key>' — e.g. 'ApiKey adp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "AccessPoints"
    },
    {
      "name": "AddressWarnings"
    },
    {
      "name": "CaseDocuments"
    },
    {
      "name": "CaseRetainer"
    },
    {
      "name": "ClientConversations"
    },
    {
      "name": "ClientCredit"
    },
    {
      "name": "ClientIntake"
    },
    {
      "name": "Clients"
    },
    {
      "name": "Dispatch"
    },
    {
      "name": "Expenses"
    },
    {
      "name": "FieldTasks"
    },
    {
      "name": "InvestigationQuotes"
    },
    {
      "name": "Investigations"
    },
    {
      "name": "Invoices"
    },
    {
      "name": "Messages"
    },
    {
      "name": "NotaryJournal"
    },
    {
      "name": "Payouts"
    },
    {
      "name": "ProcessServing"
    },
    {
      "name": "ServiceQuotes"
    },
    {
      "name": "SigningClients"
    },
    {
      "name": "SigningDocuments"
    },
    {
      "name": "SigningInvoices"
    },
    {
      "name": "SigningJobs"
    },
    {
      "name": "TimeEntries"
    },
    {
      "name": "Users"
    }
  ]
}