Case Service API 1.0

Content type
OpenAPI specifications
Product line
Clearance
Version
1.0
Language
English
Applies to
Genetec Clearance

Case Service API 1.0

API to manage evidence and digital material associated to it.

{
  "openapi": "3.0.1",
  "info": {
    "title": "Case Service API",
    "description": "API to manage evidence and digital material associated to it.",
    "termsOfService": "https://www.genetec.com/legal/cloudtos",
    "contact": {
      "url": "https://developer.clearance.network/",
      "email": "support@genetec.com"
    },
    "license": {
      "name": "Source Code License Agreement",
      "url": "https://www.genetec.com/legal/eula"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "/api/v1"
    }
  ],
  "paths": {
    "/case/{tenantId}": {
      "post": {
        "tags": [
          "Case"
        ],
        "summary": "Create a new case.",
        "operationId": "CreateCase",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id.",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Create case model.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateCaseModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/case/{tenantId}/{caseId}": {
      "get": {
        "tags": [
          "Case"
        ],
        "summary": "Find a case by Id.",
        "operationId": "GetCaseById",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "caseId",
            "in": "path",
            "description": "Case internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "concurrencyId",
            "in": "query",
            "description": "Concurrency id corresponding to a specific case version to retrieve",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Case"
        ],
        "summary": "Patch a case.",
        "operationId": "PatchCase",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "caseId",
            "in": "path",
            "description": "Case internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "Patch Case model",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PatchCaseModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Case"
        ],
        "summary": "Update an existing case.",
        "operationId": "UpdateCase",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "caseId",
            "in": "path",
            "description": "Case internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "Create case model",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateCaseModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/case/{tenantId}/{caseId}/history": {
      "get": {
        "tags": [
          "Case"
        ],
        "summary": "Retrieve the history of a case.",
        "operationId": "GetCaseHistory",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "caseId",
            "in": "path",
            "description": "Case internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "startingConcurrencyId",
            "in": "query",
            "description": "Concurrency id corresponding to a specific version to retrieve",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Count",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoryModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/case/{tenantId}/{caseId}/share": {
      "post": {
        "tags": [
          "Case"
        ],
        "summary": "Share an existing case to a user.",
        "operationId": "ShareCase",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "caseId",
            "in": "path",
            "description": "Case internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "Share case model",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ShareCaseModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/category/{tenantId}": {
      "post": {
        "tags": [
          "Category"
        ],
        "summary": "Create a new category.",
        "operationId": "CreateCategory",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The category object to create.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateCategoryModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Category"
        ],
        "summary": "List the categories.",
        "operationId": "ListCategories",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          },
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/category/{tenantId}/{categoryId}": {
      "get": {
        "tags": [
          "Category"
        ],
        "summary": "Get a category.",
        "operationId": "GetCategoryById",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "path",
            "description": "Category internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          },
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Category"
        ],
        "summary": "Update an existing category.",
        "operationId": "UpdateCategory",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "path",
            "description": "Category internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "Category model to update",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateCategoryModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/department/{tenantId}": {
      "post": {
        "tags": [
          "Department"
        ],
        "summary": "Create a new department.",
        "operationId": "CreateDepartment",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Create department model",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateDepartmentModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Department"
        ],
        "summary": "List existing departments.",
        "operationId": "ListDepartments",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DepartmentModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/department/{tenantId}/{departmentId}": {
      "get": {
        "tags": [
          "Department"
        ],
        "summary": "Find department by Id.",
        "operationId": "GetDepartmentById",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "departmentId",
            "in": "path",
            "description": "Department internal id",
            "required": true,
            "schema": {
              "maxLength": 48,
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Department"
        ],
        "summary": "Update an existing department.",
        "operationId": "UpdateDepartment",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "departmentId",
            "in": "path",
            "description": "Department internal id",
            "required": true,
            "schema": {
              "maxLength": 48,
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Update department model",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateDepartmentModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/department/{tenantId}/{departmentId}/history": {
      "get": {
        "tags": [
          "Department"
        ],
        "summary": "Retrieve the history of a department",
        "operationId": "GetDepartmentHistory",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "departmentId",
            "in": "path",
            "description": "Department internal id",
            "required": true,
            "schema": {
              "maxLength": 48,
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "startingConcurrencyId",
            "in": "query",
            "description": "Concurrency id corresponding to a specific version to retrieve",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Count",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentHistoryModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/department/{tenantId}/availability": {
      "post": {
        "tags": [
          "Department"
        ],
        "summary": "Verify department name availability.",
        "operationId": "IsDepartmentNameAvailable",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "department name",
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/evidence/{tenantId}/{evidenceId}": {
      "get": {
        "tags": [
          "Evidence"
        ],
        "summary": "Finds the evidence relations by evidence id",
        "operationId": "GetEvidenceRelationsByEvidenceId",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "Tenant internal id",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "evidenceId",
            "in": "path",
            "description": "Evidence's internal id",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "concurrencyId",
            "in": "query",
            "description": "Evidence's id corresponding to a specific version",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvidenceRelationsModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/prefilledfields/{tenantId}": {
      "get": {
        "tags": [
          "PrefilledFields"
        ],
        "summary": "Lists the tenant prefilled fields",
        "operationId": "GetPrefilledFields",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PrefilledFieldModel"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "PrefilledFields"
        ],
        "summary": "Create tenant prefilled field",
        "operationId": "InsertTemplate",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PrefilledFieldCreateModel"
                  }
                ],
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrefilledFieldModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    },
    "/prefilledfields/{tenantId}/{prefilledFieldId}": {
      "put": {
        "tags": [
          "PrefilledFields"
        ],
        "summary": "Update tenant prefilled fields",
        "operationId": "UpdatePrefilledField",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "prefilledFieldId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eTag",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PrefilledFieldUpdateModel"
                  }
                ],
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrefilledFieldModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "PrefilledFields"
        ],
        "summary": "Delete tenant prefilled field",
        "operationId": "DeletePrefilledField",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "pattern": "^[a-z0-9]{1,20}$",
              "type": "string"
            }
          },
          {
            "name": "prefilledFieldId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrefilledFieldModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "clearance-oauth2": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AccessPolicyModel": {
        "required": [
          "KId",
          "Permissions",
          "PrincipalId",
          "PrincipalType"
        ],
        "type": "object",
        "properties": {
          "Permissions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Permissions"
              }
            ],
            "description": "Permissions granted."
          },
          "PrincipalId": {
            "minLength": 1,
            "type": "string",
            "description": "Principal's internal id."
          },
          "KId": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string",
            "description": "Principal's Kid."
          },
          "PrincipalType": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Principal's type."
          },
          "Username": {
            "maxLength": 512,
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccessPolicyOutputModel": {
        "type": "object",
        "properties": {
          "Permissions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Permissions"
              }
            ],
            "description": "Permissions granted.",
            "nullable": true
          },
          "PrincipalId": {
            "type": "string",
            "description": "Principal's internal id.",
            "nullable": true
          },
          "KId": {
            "type": "string",
            "description": "Principal's Kid.",
            "nullable": true
          },
          "PrincipalType": {
            "type": "string",
            "description": "Principal's type.",
            "nullable": true
          },
          "Username": {
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthorModel": {
        "type": "object",
        "properties": {
          "PrincipalId": {
            "type": "string",
            "description": "Principal's internal id.",
            "nullable": true
          },
          "KId": {
            "type": "string",
            "description": "Principal's KId.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Principal's name.",
            "nullable": true
          },
          "Username": {
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CaseModel": {
        "type": "object",
        "properties": {
          "AccessPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpirableAccessPolicyOutputModel"
            },
            "description": "Access policies on case.",
            "nullable": true
          },
          "PersonnelRelations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonnelRelationModel"
            },
            "description": "Involved personnel relations on case.",
            "nullable": true
          },
          "CaseId": {
            "type": "string",
            "description": "Case's internal id.",
            "nullable": true
          },
          "Ordinal": {
            "type": "string",
            "description": "Case's ordinal",
            "nullable": true
          },
          "DepartmentId": {
            "type": "string",
            "description": "Department's internal id.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description or summary.",
            "nullable": true
          },
          "ExternalReferenceId1": {
            "type": "string",
            "description": "External reference id.",
            "nullable": true
          },
          "ExternalReferenceId2": {
            "type": "string",
            "description": "External reference id.",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "description": "Case's title.",
            "nullable": true
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaseState"
              }
            ],
            "description": "Case's state"
          },
          "CategoryId": {
            "type": "string",
            "description": "Category internal id",
            "nullable": true
          },
          "OccurredOn": {
            "type": "string",
            "description": "The date and time that the case starts at.",
            "format": "date-time",
            "nullable": true
          },
          "EndedOn": {
            "type": "string",
            "description": "The date and time that the case ends at.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedUtcTime": {
            "type": "string",
            "description": "Case creation's UTC time.",
            "format": "date-time"
          },
          "LastModifiedUtcTime": {
            "type": "string",
            "description": "Case modification's UTC time.",
            "format": "date-time"
          },
          "LastModifiedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrincipalOutputModel"
              }
            ],
            "description": "Last modified by.",
            "nullable": true
          },
          "LocationWKT": {
            "type": "string",
            "description": "Location of the case in well known text format",
            "nullable": true
          },
          "LocationText": {
            "type": "string",
            "description": "Human readable location text",
            "nullable": true
          },
          "Creator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrincipalOutputModel"
              }
            ],
            "description": "Information of case's creator.",
            "nullable": true
          },
          "Evidences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceModel"
            },
            "description": "Evidences related to the case.",
            "nullable": true
          },
          "EvidenceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Evidences' internal ids",
            "nullable": true,
            "deprecated": true
          },
          "Tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags used to group evidences.",
            "nullable": true
          },
          "AccessorPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permissions"
            },
            "description": "Permissions granted of the accessor.",
            "nullable": true
          },
          "LifecycleState": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LifecycleState"
              }
            ],
            "description": "The lifecycle state of the case."
          },
          "DeletedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrincipalOutputModel"
              }
            ],
            "description": "Information of the principal who deleted the case.",
            "nullable": true
          },
          "DeletedOnUtc": {
            "type": "string",
            "description": "The date and time of deletion.",
            "format": "date-time",
            "nullable": true
          },
          "CustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom Fields added by tenant admins",
            "nullable": true
          },
          "ConcurrencyId": {
            "type": "string",
            "description": "Id corresponding to a specific version.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CaseState": {
        "enum": [
          "None",
          "Active",
          "Closed"
        ],
        "type": "string"
      },
      "CategoryModel": {
        "required": [
          "CategoryId",
          "Name",
          "State"
        ],
        "type": "object",
        "properties": {
          "CategoryId": {
            "minLength": 1,
            "type": "string",
            "description": "Category's internal id"
          },
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "Category's name"
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CategoryState"
              }
            ],
            "description": "Category state"
          },
          "ConcurrencyId": {
            "type": "string",
            "description": "Id corresponding to a specific version.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CategoryState": {
        "enum": [
          "None",
          "Enabled",
          "Disabled"
        ],
        "type": "string"
      },
      "CreateCaseEmailNotificationRecipients": {
        "enum": [
          "None",
          "NoUsers",
          "AllManuallyAddedUsers"
        ],
        "type": "string"
      },
      "CreateCaseModel": {
        "required": [
          "State",
          "Title"
        ],
        "type": "object",
        "properties": {
          "Description": {
            "maxLength": 4096,
            "type": "string",
            "description": "Description or summary.",
            "nullable": true
          },
          "ExternalReferenceId1": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "ExternalReferenceId2": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "Title": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Case's title."
          },
          "DepartmentId": {
            "maxLength": 48,
            "minLength": 1,
            "type": "string",
            "description": "Department id.",
            "nullable": true
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaseState"
              }
            ],
            "description": "Case's status."
          },
          "CategoryId": {
            "type": "string",
            "description": "Case's category id.",
            "nullable": true
          },
          "OccurredOn": {
            "type": "string",
            "description": "The date and time that the case starts at.",
            "format": "date-time",
            "nullable": true
          },
          "EndedOn": {
            "type": "string",
            "description": "The date and time that the case ends at.",
            "format": "date-time",
            "nullable": true
          },
          "Evidences": {
            "maxItems": 5000,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceModel"
            },
            "description": "Case's evidences.",
            "nullable": true
          },
          "LocationWKT": {
            "type": "string",
            "description": "Location of the case in well known text format",
            "nullable": true
          },
          "LocationText": {
            "maxLength": 512,
            "type": "string",
            "description": "Human readable location text",
            "nullable": true
          },
          "EvidenceIds": {
            "maxItems": 5000,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Evidences' internal ids",
            "nullable": true,
            "deprecated": true
          },
          "Tags": {
            "maxItems": 40,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags used to group evidences.",
            "nullable": true
          },
          "AccessPolicies": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpirableAccessPolicyModel"
            },
            "description": "Access policies on case.",
            "nullable": true
          },
          "PersonnelRelations": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonnelRelationModel"
            },
            "description": "Involved personnel relations on case.",
            "nullable": true
          },
          "EmailNotificationRecipients": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCaseEmailNotificationRecipients"
              }
            ],
            "description": "Email notification setting.",
            "nullable": true
          },
          "CustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom Fields added by tenant admins",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCategoryModel": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Category's name."
          }
        },
        "additionalProperties": false
      },
      "CreateDepartmentModel": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Department name."
          },
          "AccessPoliciesOnNewCases": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPolicyModel"
            },
            "description": "Access policies on new cases.",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "Enabled field corresponding to the state of the department (enabled/disabled)."
          }
        },
        "additionalProperties": false
      },
      "DepartmentHistoryModel": {
        "type": "object",
        "properties": {
          "Title": {
            "type": "string",
            "description": "History title.",
            "nullable": true
          },
          "Entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoryEntryModel"
            },
            "description": "History Entry Model.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DepartmentModel": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "DepartmentId": {
            "type": "string",
            "description": "Department internal id",
            "nullable": true
          },
          "Name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Department name"
          },
          "AccessPoliciesOnNewCases": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPolicyOutputModel"
            },
            "description": "Access policies on new cases",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "Department state (enabled, disabled)"
          },
          "ConcurrencyId": {
            "type": "string",
            "description": "Id corresponding to a specific version.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EvidenceModel": {
        "required": [
          "EvidenceId"
        ],
        "type": "object",
        "properties": {
          "EvidenceId": {
            "minLength": 1,
            "type": "string",
            "description": "Evidence's id."
          },
          "Name": {
            "maxLength": 256,
            "type": "string",
            "description": "Evidence's name.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EvidenceRelationsModel": {
        "type": "object",
        "properties": {
          "CaseIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Cases ids.",
            "nullable": true
          },
          "EvidenceId": {
            "type": "string",
            "description": "Evidence's internal id.",
            "nullable": true
          },
          "ConcurrencyId": {
            "type": "string",
            "description": "Id corresponding to a specific version.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExceptionModel": {
        "type": "object",
        "properties": {
          "Type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExceptionType"
              }
            ],
            "description": "Provides the type of exception"
          },
          "Code": {
            "type": "string",
            "nullable": true
          },
          "Data": {
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data class for the Exception model"
      },
      "ExceptionType": {
        "enum": [
          "BusinessException",
          "ModelValidatorException"
        ],
        "type": "string",
        "description": "Provides the type of exception"
      },
      "ExpirableAccessPolicyModel": {
        "required": [
          "KId",
          "Permissions",
          "PrincipalId",
          "PrincipalType"
        ],
        "type": "object",
        "properties": {
          "ExpirationDateUtc": {
            "type": "string",
            "description": "Sets an expiration date to this access policy. Once expired, access will be denied.",
            "format": "date-time",
            "nullable": true
          },
          "Permissions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Permissions"
              }
            ],
            "description": "Permissions granted."
          },
          "PrincipalId": {
            "minLength": 1,
            "type": "string",
            "description": "Principal's internal id."
          },
          "KId": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string",
            "description": "Principal's Kid."
          },
          "PrincipalType": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Principal's type."
          },
          "Username": {
            "maxLength": 512,
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExpirableAccessPolicyOutputModel": {
        "type": "object",
        "properties": {
          "ExpirationDateUtc": {
            "type": "string",
            "description": "Sets an expiration date to this access policy. Once expired, access will be denied.",
            "format": "date-time",
            "nullable": true
          },
          "Permissions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Permissions"
              }
            ],
            "description": "Permissions granted.",
            "nullable": true
          },
          "PrincipalId": {
            "type": "string",
            "description": "Principal's internal id.",
            "nullable": true
          },
          "KId": {
            "type": "string",
            "description": "Principal's Kid.",
            "nullable": true
          },
          "PrincipalType": {
            "type": "string",
            "description": "Principal's type.",
            "nullable": true
          },
          "Username": {
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExpirablePrincipalModel": {
        "required": [
          "KId",
          "PrincipalId",
          "PrincipalType"
        ],
        "type": "object",
        "properties": {
          "ExpirationDateUtc": {
            "type": "string",
            "description": "Optional expiration date in UTC",
            "format": "date-time",
            "nullable": true
          },
          "PrincipalId": {
            "minLength": 1,
            "type": "string",
            "description": "Principal's internal id."
          },
          "KId": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string",
            "description": "Principal's Kid."
          },
          "PrincipalType": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Principal's type."
          },
          "Username": {
            "maxLength": 512,
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HistoryEntryModel": {
        "type": "object",
        "properties": {
          "Author": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthorModel"
              }
            ],
            "description": "Author model",
            "nullable": true
          },
          "ConcurrencyId": {
            "type": "string",
            "description": "Concurrency id corresponding to a specific version.",
            "nullable": true
          },
          "IPAddress": {
            "type": "string",
            "description": "IP address.",
            "nullable": true
          },
          "ParentReference": {
            "type": "string",
            "description": "Previous version's concurrency id.",
            "nullable": true
          },
          "TimestampUtc": {
            "type": "string",
            "description": "Entity's version timestamp.",
            "format": "date-time"
          },
          "Reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReasonModel"
              }
            ],
            "description": "Reason associated with this version's creation.",
            "nullable": true
          },
          "TreeReference": {
            "type": "string",
            "description": "Tree reference.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HistoryModel": {
        "type": "object",
        "properties": {
          "Title": {
            "type": "string",
            "description": "History title.",
            "nullable": true
          },
          "Entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoryEntryModel"
            },
            "description": "History Entry Model.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HistoryUserAction": {
        "enum": [
          "None",
          "Create",
          "Edit",
          "View",
          "Delete",
          "Restore",
          "Protect",
          "Unprotect",
          "CreateCopy",
          "Copy",
          "EditLink",
          "CreateTransferredCase",
          "TransferCase",
          "ShareCase"
        ],
        "type": "string"
      },
      "LifecycleState": {
        "enum": [
          "None",
          "Normal",
          "Deleted",
          "Protected"
        ],
        "type": "string"
      },
      "PatchCaseModel": {
        "required": [
          "ConcurrencyId"
        ],
        "type": "object",
        "properties": {
          "Description": {
            "maxLength": 4096,
            "type": "string",
            "description": "Description or summary.",
            "nullable": true
          },
          "ExternalReferenceId1": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "ExternalReferenceId2": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "Title": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Case's title.",
            "nullable": true
          },
          "DepartmentId": {
            "maxLength": 48,
            "minLength": 1,
            "type": "string",
            "description": "Department id.",
            "nullable": true
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaseState"
              }
            ],
            "description": "Case's status.",
            "nullable": true
          },
          "CategoryId": {
            "type": "string",
            "description": "Case's category id.",
            "nullable": true
          },
          "OccurredOn": {
            "type": "string",
            "description": "The date and time that the case starts at. TODO in V2, rename as StartTimeUtc like in EvidenceModel in DocumentStore",
            "format": "date-time",
            "nullable": true
          },
          "EndedOn": {
            "type": "string",
            "description": "The date and time that the case ends at. TODO in V2, rename as EndTimeUtc like in EvidenceModel in DocumentStore",
            "format": "date-time",
            "nullable": true
          },
          "Evidences": {
            "maxItems": 5000,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceModel"
            },
            "description": "Case's evidences.",
            "nullable": true
          },
          "LocationWKT": {
            "type": "string",
            "description": "Location of the case in well known text format",
            "nullable": true
          },
          "LocationText": {
            "maxLength": 512,
            "type": "string",
            "description": "Human readable location text",
            "nullable": true
          },
          "Tags": {
            "maxItems": 40,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags used to group evidences.",
            "nullable": true
          },
          "AccessPolicies": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpirableAccessPolicyModel"
            },
            "description": "Access policies on case.",
            "nullable": true
          },
          "PersonnelRelations": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonnelRelationModel"
            },
            "description": "Involved personnel relations on case.",
            "nullable": true
          },
          "ConcurrencyId": {
            "minLength": 1,
            "type": "string",
            "description": "Concurrency id corresponding to a specific version of a case"
          },
          "CustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom Fields added by tenant admins",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Permissions": {
        "enum": [
          "None",
          "Write",
          "Read",
          "ModifyPermissions",
          "Download"
        ],
        "type": "integer",
        "x-enumFlags": true,
        "x-enumNames": [
          "None",
          "Write",
          "Read",
          "ModifyPermissions",
          "Download"
        ]
      },
      "PersonnelIdType": {
        "enum": [
          "None",
          "Officer",
          "Principal"
        ],
        "type": "string"
      },
      "PersonnelModel": {
        "required": [
          "Id",
          "IdType"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Personnel's unique identifier."
          },
          "IdType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonnelIdType"
              }
            ],
            "description": "Personnel's identification type."
          }
        },
        "additionalProperties": false
      },
      "PersonnelRelationModel": {
        "required": [
          "Personnel"
        ],
        "type": "object",
        "properties": {
          "Personnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonnelModel"
              }
            ],
            "description": "Personnel's unique identifier."
          },
          "TimeRangeEntries": {
            "maxItems": 10,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeRangeModel"
            },
            "description": "Personnel relationship time entries.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PrefilledFieldCreateModel": {
        "required": [
          "Enabled",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Type": {
            "minLength": 1,
            "pattern": "^[a-z0-9\\-]{1,20}$",
            "type": "string",
            "description": "Type of template group"
          },
          "Enabled": {
            "type": "boolean",
            "description": "Field Enabled State"
          },
          "Format": {
            "maxLength": 50,
            "type": "string",
            "description": "Format of the template field",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "PrefilledFieldModel": {
        "required": [
          "Enabled",
          "Id",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "minLength": 1,
            "type": "string",
            "description": "Unique ID of the Template field"
          },
          "Type": {
            "minLength": 1,
            "pattern": "^[a-z0-9\\-]{1,20}$",
            "type": "string",
            "description": "Type of template group"
          },
          "Enabled": {
            "type": "boolean",
            "description": "Field Enabled State"
          },
          "Format": {
            "maxLength": 50,
            "type": "string",
            "description": "Format of the template field",
            "nullable": true
          },
          "ETag": {
            "type": "string",
            "description": "Model Etag",
            "nullable": true
          },
          "LastModifiedUtc": {
            "type": "string",
            "description": "Last modified UTC time",
            "format": "date-time"
          },
          "LastModifiedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrincipalModel"
              }
            ],
            "description": "Last modified principal",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "PrefilledFieldUpdateModel": {
        "required": [
          "Enabled"
        ],
        "type": "object",
        "properties": {
          "Enabled": {
            "type": "boolean",
            "description": "Field Enabled State"
          },
          "Format": {
            "maxLength": 50,
            "type": "string",
            "description": "Format of the template field",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "PrincipalModel": {
        "required": [
          "KId",
          "PrincipalId",
          "PrincipalType"
        ],
        "type": "object",
        "properties": {
          "PrincipalId": {
            "minLength": 1,
            "type": "string",
            "description": "Principal's internal id."
          },
          "KId": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string",
            "description": "Principal's Kid."
          },
          "PrincipalType": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Principal's type."
          },
          "Username": {
            "maxLength": 512,
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PrincipalOutputModel": {
        "type": "object",
        "properties": {
          "PrincipalId": {
            "type": "string",
            "description": "Principal's internal id.",
            "nullable": true
          },
          "KId": {
            "type": "string",
            "description": "Principal's Kid.",
            "nullable": true
          },
          "PrincipalType": {
            "type": "string",
            "description": "Principal's type.",
            "nullable": true
          },
          "Username": {
            "type": "string",
            "description": "Principal's username.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReasonModel": {
        "type": "object",
        "properties": {
          "Action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HistoryUserAction"
              }
            ],
            "description": "History user action"
          },
          "Details": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of actions details.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShareCaseModel": {
        "type": "object",
        "properties": {
          "SharedPrincipals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpirablePrincipalModel"
            },
            "description": "Users to share case to.",
            "nullable": true
          },
          "EmailNotificationRecipients": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdateCaseEmailNotificationRecipients"
              }
            ],
            "description": "Notify users via email.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TimeRangeModel": {
        "type": "object",
        "properties": {
          "StartTimeUtc": {
            "type": "string",
            "description": "Start UTC time.",
            "format": "date-time",
            "nullable": true
          },
          "EndTimeUtc": {
            "type": "string",
            "description": "End UTC time.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCaseEmailNotificationRecipients": {
        "enum": [
          "None",
          "NoUsers",
          "AllAddedUsers"
        ],
        "type": "string"
      },
      "UpdateCaseModel": {
        "required": [
          "ConcurrencyId",
          "State",
          "Title"
        ],
        "type": "object",
        "properties": {
          "Description": {
            "maxLength": 4096,
            "type": "string",
            "description": "Description or summary.",
            "nullable": true
          },
          "ExternalReferenceId1": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "ExternalReferenceId2": {
            "maxLength": 256,
            "type": "string",
            "description": "Case's external reference id.",
            "nullable": true
          },
          "Title": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Case's title."
          },
          "DepartmentId": {
            "maxLength": 48,
            "minLength": 1,
            "type": "string",
            "description": "Department id.",
            "nullable": true
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaseState"
              }
            ],
            "description": "Case's status."
          },
          "CategoryId": {
            "type": "string",
            "description": "Case's category id.",
            "nullable": true
          },
          "OccurredOn": {
            "type": "string",
            "description": "The date and time that the case starts at.",
            "format": "date-time",
            "nullable": true
          },
          "EndedOn": {
            "type": "string",
            "description": "The date and time that the case ends at.",
            "format": "date-time",
            "nullable": true
          },
          "Evidences": {
            "maxItems": 5000,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceModel"
            },
            "description": "Case's evidences.",
            "nullable": true
          },
          "LocationWKT": {
            "type": "string",
            "description": "Location of the case in well known text format",
            "nullable": true
          },
          "LocationText": {
            "maxLength": 512,
            "type": "string",
            "description": "Human readable location text",
            "nullable": true
          },
          "EvidenceIds": {
            "maxItems": 5000,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Evidences' internal ids",
            "nullable": true,
            "deprecated": true
          },
          "Tags": {
            "maxItems": 40,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags used to group evidences.",
            "nullable": true
          },
          "AccessPolicies": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpirableAccessPolicyModel"
            },
            "description": "Access policies on case.",
            "nullable": true
          },
          "PersonnelRelations": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonnelRelationModel"
            },
            "description": "Involved personnel relations on case.",
            "nullable": true
          },
          "ConcurrencyId": {
            "minLength": 1,
            "type": "string",
            "description": "Concurrency id corresponding to a specific version of a case"
          },
          "EmailNotificationRecipients": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdateCaseEmailNotificationRecipients"
              }
            ],
            "description": "Email notification recipients",
            "nullable": true
          },
          "CustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom Fields added by tenant admins",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCategoryModel": {
        "required": [
          "ConcurrencyId",
          "Name",
          "State"
        ],
        "type": "object",
        "properties": {
          "ConcurrencyId": {
            "minLength": 1,
            "type": "string",
            "description": "Concurrency id corresponding to a specific version to retrieve"
          },
          "State": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CategoryState"
              }
            ],
            "description": "Category's state"
          },
          "Name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Category's name."
          }
        },
        "additionalProperties": false
      },
      "UpdateDepartmentModel": {
        "required": [
          "ConcurrencyId",
          "Name"
        ],
        "type": "object",
        "properties": {
          "ConcurrencyId": {
            "minLength": 1,
            "type": "string",
            "description": "Concurrency id corresponding to a specific department version."
          },
          "Name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Department name."
          },
          "AccessPoliciesOnNewCases": {
            "maxItems": 500,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPolicyModel"
            },
            "description": "Access policies on new cases.",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "Enabled field corresponding to the state of the department (enabled/disabled)."
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "clearance-oauth2": {
        "type": "oauth2",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://clearance-a-sts.geneteccloud.com/connect/authorize",
            "scopes": {
              "api": "api"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "clearance-oauth2": [
        "api"
      ]
    }
  ]
}