{
  "openapi": "3.1.1",
  "info": {
    "title": "DayPilot API",
    "description": "The API the DayPilot website and iPhone app use. Authenticate with an API key from the Developer page, sent as \"Authorization: Bearer dpk_…\". The guide, with conventions, errors, limits and examples, is at /Developer (and as Markdown at /developer.md).",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://daypilot.app/"
    }
  ],
  "paths": {
    "/robots.txt": {
      "get": {
        "tags": [
          "DayPilot.Web"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": [
          "DayPilot.Web"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/google": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoogleTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationPendingResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/resend-confirmation": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendConfirmationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/confirm-email": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmEmailRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailConfirmedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/change-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/google/link": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoogleLinkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/forgot-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/reset-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/apple": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppleTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/revoke-all": {
      "post": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/account": {
      "delete": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/me": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentUserResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/board": {
      "get": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "replan",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/changes": {
      "get": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/replan": {
      "post": {
        "tags": [
          "Planner"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/chunks/{id}/move": {
      "post": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChunkMoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/chunks/{id}/done": {
      "post": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "boardStart",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/chunks/{id}/unpin": {
      "post": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/tasks/{id}/done": {
      "post": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/events": {
      "post": {
        "tags": [
          "Planner"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/events/all-day": {
      "post": {
        "tags": [
          "Planner"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllDayCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/events/{id}/all-day": {
      "put": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllDayUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/events/{id}": {
      "put": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "boardStart",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/RecurrenceEditScope"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/planner/events/{id}/move": {
      "post": {
        "tags": [
          "Planner"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventMoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannerBoardModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/TaskStatus"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "includeDone",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskListItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/paged": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/TaskStatus"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "includeDone",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskPage"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/today": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskListItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/today/tree": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TodayTree"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/lineage": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LineageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskListItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}": {
      "delete": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "patch": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskDetailsModel"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskDetailsModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/promote": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/attachments/{id}": {
      "delete": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks/bulk": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskBulkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskBulkResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/blocks": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskPlan"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/subtasks": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskListItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/subtasks/open": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubTaskStatus"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/subtasks/outside": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubTaskFit"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/subtasks/fit": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskBulkResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/bulk/delete": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskBulkDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskBulkResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/escalation/reset": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks/editor": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "templateId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "parentTaskId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "newTemplate",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "projectTemplateId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskEditorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/save": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "requestBody": {
          "description": "The model as JSON, or multipart/form-data with the same JSON in a \"model\" field and files in \"attachments\".",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "title"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "projectId": {
                    "maximum": 2147483647,
                    "minimum": 1,
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "groupId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "parentTaskId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "projectTemplateId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "assignedToUserId": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "scheduleId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "title": {
                    "maxLength": 160,
                    "minLength": 0,
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "status": {
                    "enum": [
                      "NotStarted",
                      "InProgress",
                      "Waiting",
                      "Done"
                    ]
                  },
                  "priority": {
                    "enum": [
                      "Low",
                      "Medium",
                      "High",
                      "Urgent"
                    ]
                  },
                  "dueDate": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date"
                  },
                  "isDueTimeFixed": {
                    "type": "boolean"
                  },
                  "dueTime": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "time"
                  },
                  "startDate": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date"
                  },
                  "isStartTimeFixed": {
                    "type": "boolean"
                  },
                  "startTime": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "time"
                  },
                  "dependsOnTaskIds": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "pattern": "^-?(?:0|[1-9]\\d*)$",
                      "type": [
                        "integer",
                        "string"
                      ],
                      "format": "int32"
                    }
                  },
                  "snoozedUntilUtc": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date-time"
                  },
                  "repeatMode": {
                    "enum": [
                      "WhenDone",
                      "OnSchedule",
                      "AfterDone",
                      null
                    ]
                  },
                  "recurrenceMonthWeek": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "recurrenceCount": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "occurrenceIndex": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "hasSubTasks": {
                    "type": "boolean"
                  },
                  "startOffsetDays": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "dueOffsetDays": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "templateParentOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "projectTemplateOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "name"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "templateChildren": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title",
                        "startOffsetDays",
                        "dueOffsetDays",
                        "estimatedHours"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        },
                        "startOffsetDays": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "null",
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "dueOffsetDays": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "null",
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "estimatedHours": {
                          "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
                          "type": [
                            "number",
                            "string"
                          ],
                          "format": "double"
                        }
                      }
                    }
                  },
                  "estimatedHours": {
                    "maximum": 1000,
                    "minimum": 0.25,
                    "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
                    "type": [
                      "number",
                      "string"
                    ],
                    "format": "double"
                  },
                  "isChunked": {
                    "type": "boolean"
                  },
                  "chunkMinutes": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "isRecurring": {
                    "type": "boolean"
                  },
                  "recurrencePattern": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "recurrenceFrequency": {
                    "enum": [
                      "None",
                      "Daily",
                      "Weekly",
                      "Monthly",
                      "Yearly"
                    ]
                  },
                  "recurrenceInterval": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "recurrenceWeekdays": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "recurrenceEndDate": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date"
                  },
                  "missedCount": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "escalationLevel": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "isTemplate": {
                    "type": "boolean"
                  },
                  "templateName": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "overwriteTemplateId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "sourceTemplateId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "projectOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "name",
                        "groupId"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "name": {
                          "type": "string"
                        },
                        "groupId": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "null",
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        }
                      }
                    }
                  },
                  "scheduleOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "name"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "parentTaskOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "groupOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "name",
                        "isManager"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "name": {
                          "type": "string"
                        },
                        "isManager": {
                          "type": "boolean"
                        }
                      }
                    }
                  },
                  "assigneeOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "displayName"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "displayName": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "templateOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "name"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "attachments": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "fileName",
                        "url",
                        "contentType",
                        "fileSizeBytes",
                        "uploadedAtUtc"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "fileName": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "contentType": {
                          "type": "string"
                        },
                        "fileSizeBytes": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int64"
                        },
                        "uploadedAtUtc": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  },
                  "docIds": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "pattern": "^-?(?:0|[1-9]\\d*)$",
                      "type": [
                        "integer",
                        "string"
                      ],
                      "format": "int32"
                    }
                  },
                  "docs": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title",
                        "status"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        },
                        "status": {
                          "enum": [
                            "Draft",
                            "Published",
                            "Archived"
                          ]
                        }
                      }
                    }
                  },
                  "docOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title",
                        "path"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        },
                        "path": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{id}/snooze": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/SnoozeRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnoozeResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks/{id}/done": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/dashboard": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/dashboard/insights": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardInsights"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/dashboard/team": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamInsights"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectOption"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectSaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/list": {
      "get": {
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectListItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDetail"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "moveTasksTo",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/schedules": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "selectedId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleWorkspaceModel"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Schedules"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleEditorModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/new": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleEditorModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/options": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduleOption"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/timezones": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeZoneOption"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/palette": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/end-of-day": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "scheduleId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndOfDayResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schedules/{id}": {
      "delete": {
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferences/timezone": {
      "post": {
        "tags": [
          "Preferences"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeZoneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeZoneResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tenant/invitations/preview": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvitationPreview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tenant": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantOverview"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Tenant"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tenant/invitations": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvitationSummary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tenant/invitations/{id}": {
      "delete": {
        "tags": [
          "Tenant"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tenant/invitations/accept": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tenant/leave": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tenant/members/{userId}": {
      "patch": {
        "tags": [
          "Tenant"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantOverview"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tenant"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/calendars": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarOverview"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Calendars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarChoicesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Calendars"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/calendars/sync": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/calendars/toggle-sync": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/calendars/google/complete": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteConnectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/calendars/google/connect-url": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "parameters": [
          {
            "name": "returnTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectUrlResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inbox": {
      "get": {
        "tags": [
          "Inbox"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inbox/senders": {
      "put": {
        "tags": [
          "Inbox"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowedSendersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inbox/regenerate": {
      "post": {
        "tags": [
          "Inbox"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inbox/check": {
      "post": {
        "tags": [
          "Inbox"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxCheckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/groups": {
      "get": {
        "tags": [
          "Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupListItem"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupSaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/groups/{id}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDetail"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupSaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDetail"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/groups/{id}/members": {
      "post": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/groups/{id}/members/{userId}": {
      "delete": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/groups/{id}/assignees": {
      "get": {
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserOption"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates": {
      "get": {
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateWorkspaceModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/list": {
      "get": {
        "tags": [
          "Templates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateCatalog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/task/{id}": {
      "get": {
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskEditorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/templates/project/{id}": {
      "get": {
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/project": {
      "post": {
        "tags": [
          "Templates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplateSaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/folder": {
      "post": {
        "tags": [
          "Templates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderTemplateEditorModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/task": {
      "post": {
        "tags": [
          "Templates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskTemplateEditorModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/templates/folder/{id}": {
      "delete": {
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferences": {
      "get": {
        "tags": [
          "Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreferencesSnapshot"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Preferences"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreferencesUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreferencesSaved"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/preferences/timezones": {
      "get": {
        "tags": [
          "Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeZoneOption"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/preferences/profile-image": {
      "post": {
        "tags": [
          "Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DevicesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Devices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceRegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceRegistered"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/devices/{token}": {
      "delete": {
        "tags": [
          "Devices"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing": {
      "get": {
        "tags": [
          "Billing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/billing/checkout": {
      "post": {
        "tags": [
          "Billing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UrlResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/billing/portal": {
      "post": {
        "tags": [
          "Billing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UrlResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/billing/stripe/webhook": {
      "post": {
        "tags": [
          "Billing"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/billing/apple/transaction": {
      "post": {
        "tags": [
          "Billing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppleTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingOverview"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/billing/apple/notifications": {
      "post": {
        "tags": [
          "Billing"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/import/{provider}/workspaces": {
      "post": {
        "tags": [
          "Import"
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportWorkspace"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/import/{provider}/preview": {
      "post": {
        "tags": [
          "Import"
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportJobStarted"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/import/jobs/{jobId}": {
      "get": {
        "tags": [
          "Import"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/import/clickup/attachments": {
      "post": {
        "tags": [
          "Import"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportAttachmentsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportAttachmentsResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/import/run": {
      "post": {
        "tags": [
          "Import"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportJobStarted"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs": {
      "get": {
        "tags": [
          "Docs"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocTree"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/options": {
      "get": {
        "tags": [
          "Docs"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DocOption"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/editor": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocEditorModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocDetail"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/save": {
      "post": {
        "tags": [
          "Docs"
        ],
        "requestBody": {
          "description": "The model as JSON, or multipart/form-data with the same JSON in a \"model\" field and files in \"attachments\".",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "parentDocId": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "title": {
                    "maxLength": 200,
                    "minLength": 0,
                    "type": "string"
                  },
                  "body": {
                    "type": "string"
                  },
                  "status": {
                    "enum": [
                      "Draft",
                      "Published",
                      "Archived"
                    ]
                  },
                  "ownerUserId": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "reviewEveryMonths": {
                    "pattern": "^-?(?:0|[1-9]\\d*)$",
                    "type": [
                      "null",
                      "integer",
                      "string"
                    ],
                    "format": "int32"
                  },
                  "nextReviewOn": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date"
                  },
                  "lastReviewedOn": {
                    "type": [
                      "null",
                      "string"
                    ],
                    "format": "date"
                  },
                  "parentOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "title",
                        "path"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "title": {
                          "type": "string"
                        },
                        "path": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "ownerOptions": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "displayName"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "displayName": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "attachments": {
                    "type": "array",
                    "items": {
                      "required": [
                        "id",
                        "fileName",
                        "url",
                        "contentType",
                        "fileSizeBytes",
                        "uploadedAtUtc"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int32"
                        },
                        "fileName": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "contentType": {
                          "type": "string"
                        },
                        "fileSizeBytes": {
                          "pattern": "^-?(?:0|[1-9]\\d*)$",
                          "type": [
                            "integer",
                            "string"
                          ],
                          "format": "int64"
                        },
                        "uploadedAtUtc": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/move": {
      "post": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/docs/{id}/status": {
      "post": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/attachments/{id}": {
      "delete": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/docs/{id}/sharing": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocSharing"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SharingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocSharing"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/revisions": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DocRevisionItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/revisions/{revisionId}": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "revisionId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocRevisionDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/revisions/{revisionId}/restore": {
      "post": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "revisionId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/steps": {
      "get": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/run": {
      "post": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocRunResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/docs/{id}/reviewed": {
      "post": {
        "tags": [
          "Docs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/developer/keys": {
      "get": {
        "tags": [
          "Developer"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeySummary"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Developer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedApiKey"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/developer/keys/{id}": {
      "delete": {
        "tags": [
          "Developer"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/developer/catalog": {
      "get": {
        "tags": [
          "Developer"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogResponse"
                }
              }
            }
          }
        }
      }
    },
    "/files/profile/{userId}": {
      "get": {
        "tags": [
          "DayPilot.Web"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/files/attachments/{id}": {
      "get": {
        "tags": [
          "DayPilot.Web"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/files/doc-attachments/{id}": {
      "get": {
        "tags": [
          "DayPilot.Web"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptRequest": {
        "required": [
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          }
        }
      },
      "AccessTokenResponse": {
        "required": [
          "accessToken",
          "expiresIn",
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "tokenType": {
            "type": [
              "null",
              "string"
            ]
          },
          "accessToken": {
            "type": "string"
          },
          "expiresIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "AllDayCreateRequest": {
        "required": [
          "boardStart",
          "title",
          "date",
          "endDate",
          "isBusy",
          "calendarId"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isBusy": {
            "type": "boolean"
          },
          "calendarId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "AllDayUpdateRequest": {
        "required": [
          "boardStart",
          "title",
          "date",
          "endDate",
          "isBusy",
          "scope"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isBusy": {
            "type": "boolean"
          },
          "scope": {
            "$ref": "#/components/schemas/RecurrenceEditScope"
          }
        }
      },
      "AllowedSendersRequest": {
        "required": [
          "allowedSenders"
        ],
        "type": "object",
        "properties": {
          "allowedSenders": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ApiBasics": {
        "required": [
          "conventions",
          "errors",
          "limits"
        ],
        "type": "object",
        "properties": {
          "conventions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiErrorCode"
            }
          },
          "limits": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiCatalogOperation": {
        "required": [
          "id",
          "title",
          "summary",
          "method",
          "path",
          "parameters",
          "body",
          "returns"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCatalogParameter"
            }
          },
          "body": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/JsonNode"
              }
            ]
          },
          "returns": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ApiCatalogParameter": {
        "required": [
          "name",
          "in",
          "description",
          "required",
          "type",
          "example",
          "values",
          "source"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "in": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "example": {
            "type": [
              "null",
              "string"
            ]
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "source": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ApiCatalogSection": {
        "required": [
          "id",
          "title",
          "summary",
          "operations"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCatalogOperation"
            }
          }
        }
      },
      "ApiEndpointInfo": {
        "required": [
          "method",
          "path",
          "tag",
          "parameters",
          "hasBody",
          "websiteOnly",
          "inGuide"
        ],
        "type": "object",
        "properties": {
          "method": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "tag": {
            "type": "string"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEndpointParameter"
            }
          },
          "hasBody": {
            "type": "boolean"
          },
          "websiteOnly": {
            "type": "boolean"
          },
          "inGuide": {
            "type": "boolean"
          }
        }
      },
      "ApiEndpointParameter": {
        "required": [
          "name",
          "in",
          "type",
          "required",
          "values"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "in": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiErrorCode": {
        "required": [
          "status",
          "meaning"
        ],
        "type": "object",
        "properties": {
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "meaning": {
            "type": "string"
          }
        }
      },
      "ApiKeyAccess": {
        "enum": [
          "ReadWrite",
          "ReadOnly"
        ]
      },
      "ApiKeyCreateRequest": {
        "required": [
          "name",
          "access",
          "expiresOn"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "access": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiKeyAccess"
              }
            ]
          },
          "expiresOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "neverExpires": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ApiKeySummary": {
        "required": [
          "id",
          "name",
          "prefix",
          "access",
          "createdAtUtc",
          "expiresAtUtc",
          "lastUsedAtUtc",
          "expired"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "access": {
            "$ref": "#/components/schemas/ApiKeyAccess"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastUsedAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "expired": {
            "type": "boolean"
          }
        }
      },
      "AppleTokenRequest": {
        "required": [
          "identityToken",
          "authorizationCode",
          "givenName",
          "familyName",
          "inviteToken"
        ],
        "type": "object",
        "properties": {
          "identityToken": {
            "type": "string"
          },
          "authorizationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "givenName": {
            "type": [
              "null",
              "string"
            ]
          },
          "familyName": {
            "type": [
              "null",
              "string"
            ]
          },
          "inviteToken": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "AppleTransactionRequest": {
        "required": [
          "signedTransaction"
        ],
        "type": "object",
        "properties": {
          "signedTransaction": {
            "type": "string"
          }
        }
      },
      "BillingOverview": {
        "required": [
          "plan",
          "features",
          "subscription",
          "prices",
          "stripeConfigured",
          "appleConfigured",
          "members",
          "pendingInvitations",
          "freeMemberLimit",
          "canManage",
          "memberLimit",
          "planLimits"
        ],
        "type": "object",
        "properties": {
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Feature"
            }
          },
          "subscription": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/SubscriptionSummary"
              }
            ]
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanPrice"
            }
          },
          "stripeConfigured": {
            "type": "boolean"
          },
          "appleConfigured": {
            "type": "boolean"
          },
          "members": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pendingInvitations": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "freeMemberLimit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "canManage": {
            "type": "boolean"
          },
          "memberLimit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "planLimits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanLimit"
            }
          }
        }
      },
      "BoardRequest": {
        "required": [
          "boardStart"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "CalendarChoice": {
        "required": [
          "id",
          "isIncluded",
          "colorHex"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isIncluded": {
            "type": "boolean"
          },
          "colorHex": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CalendarChoicesRequest": {
        "required": [
          "calendars",
          "taskTargetId"
        ],
        "type": "object",
        "properties": {
          "calendars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarChoice"
            }
          },
          "taskTargetId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CalendarConnectionSummary": {
        "required": [
          "id",
          "displayName",
          "accountEmail",
          "syncEnabled",
          "needsReconnect",
          "lastSyncError",
          "lastSyncedUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "displayName": {
            "type": "string"
          },
          "accountEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "syncEnabled": {
            "type": "boolean"
          },
          "needsReconnect": {
            "type": "boolean"
          },
          "lastSyncError": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastSyncedUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "CalendarOverview": {
        "required": [
          "configured",
          "connection",
          "calendars",
          "managedEventCount",
          "loadError",
          "userTimeZoneId"
        ],
        "type": "object",
        "properties": {
          "configured": {
            "type": "boolean"
          },
          "connection": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CalendarConnectionSummary"
              }
            ]
          },
          "calendars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarSummary"
            }
          },
          "managedEventCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "loadError": {
            "type": [
              "null",
              "string"
            ]
          },
          "userTimeZoneId": {
            "type": "string"
          }
        }
      },
      "CalendarSummary": {
        "required": [
          "id",
          "externalCalendarId",
          "name",
          "colorHex",
          "isPrimary",
          "canEdit",
          "isIncluded",
          "isTaskTarget"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "externalCalendarId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          },
          "isIncluded": {
            "type": "boolean"
          },
          "isTaskTarget": {
            "type": "boolean"
          }
        }
      },
      "CapacityDay": {
        "required": [
          "date",
          "availableMinutes",
          "plannedMinutes",
          "workedMinutes"
        ],
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "availableMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "plannedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "workedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CapacityForecast": {
        "required": [
          "days",
          "weeks",
          "unplacedMinutes",
          "unplacedTasks",
          "summary"
        ],
        "type": "object",
        "properties": {
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapacityDay"
            }
          },
          "weeks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapacityWeek"
            }
          },
          "unplacedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unplacedTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "summary": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CapacityWeek": {
        "required": [
          "label",
          "start",
          "end",
          "availableMinutes",
          "plannedMinutes"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date"
          },
          "end": {
            "type": "string",
            "format": "date"
          },
          "availableMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "plannedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CatalogResponse": {
        "required": [
          "baseUrl",
          "keyPrefix",
          "requestsPerMinute",
          "basics",
          "sections",
          "endpoints"
        ],
        "type": "object",
        "properties": {
          "baseUrl": {
            "type": "string"
          },
          "keyPrefix": {
            "type": "string"
          },
          "requestsPerMinute": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "basics": {
            "$ref": "#/components/schemas/ApiBasics"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCatalogSection"
            }
          },
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEndpointInfo"
            }
          }
        }
      },
      "ChangePasswordRequest": {
        "required": [
          "currentPassword",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "currentPassword": {
            "type": [
              "null",
              "string"
            ]
          },
          "newPassword": {
            "type": "string"
          }
        }
      },
      "ChangesResponse": {
        "required": [
          "lastChangedUtc",
          "changed",
          "tenantId"
        ],
        "type": "object",
        "properties": {
          "lastChangedUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "changed": {
            "type": "boolean"
          },
          "tenantId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CheckoutRequest": {
        "required": [
          "plan",
          "yearly"
        ],
        "type": "object",
        "properties": {
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "yearly": {
            "type": "boolean"
          }
        }
      },
      "ChunkMoveRequest": {
        "required": [
          "boardStart",
          "date",
          "startTime",
          "endTime"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          }
        }
      },
      "ChunkSummary": {
        "required": [
          "id",
          "sequence",
          "durationMinutes",
          "scheduledStartUtc",
          "scheduledEndUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sequence": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "scheduledStartUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "scheduledEndUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "isCompleted": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "CompleteConnectionRequest": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        }
      },
      "ConfirmEmailRequest": {
        "required": [
          "userId",
          "code"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        }
      },
      "ConnectUrlResponse": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "CreatedApiKey": {
        "required": [
          "key",
          "secret"
        ],
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/ApiKeySummary"
          },
          "secret": {
            "type": "string"
          }
        }
      },
      "CurrentUserResponse": {
        "required": [
          "id",
          "email",
          "displayName",
          "timeZoneId",
          "theme",
          "plannerTextSize",
          "profileImageUrl",
          "tenant",
          "plan",
          "features",
          "hasPassword",
          "signInProviders"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "timeZoneId": {
            "type": [
              "null",
              "string"
            ]
          },
          "theme": {
            "$ref": "#/components/schemas/ThemePreference"
          },
          "plannerTextSize": {
            "$ref": "#/components/schemas/PlannerTextSize"
          },
          "profileImageUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "tenant": {
            "$ref": "#/components/schemas/TenantSummary"
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Feature"
            }
          },
          "hasPassword": {
            "type": "boolean"
          },
          "signInProviders": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "weekStartsOn": {
            "$ref": "#/components/schemas/DayOfWeek"
          }
        }
      },
      "DashboardFocusTask": {
        "required": [
          "id",
          "title",
          "projectName",
          "projectColorHex",
          "priority",
          "effectivePriority",
          "escalationLevel",
          "status",
          "dueDate",
          "dueTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "projectColorHex": {
            "type": "string"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "effectivePriority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          }
        }
      },
      "DashboardInsights": {
        "required": [
          "today",
          "timeZoneId",
          "capacity",
          "deadlines",
          "canViewTeam"
        ],
        "type": "object",
        "properties": {
          "today": {
            "type": "string",
            "format": "date"
          },
          "timeZoneId": {
            "type": "string"
          },
          "capacity": {
            "$ref": "#/components/schemas/CapacityForecast"
          },
          "deadlines": {
            "$ref": "#/components/schemas/DeadlineOutlook"
          },
          "canViewTeam": {
            "type": "boolean"
          }
        }
      },
      "DashboardSnapshot": {
        "required": [
          "totalTasks",
          "openTasks",
          "dueSoonTasks",
          "plannedHours",
          "focusTasks"
        ],
        "type": "object",
        "properties": {
          "totalTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "openTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "dueSoonTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "plannedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "focusTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DashboardFocusTask"
            }
          }
        }
      },
      "DayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "default": "Monday"
      },
      "DeadlineItem": {
        "required": [
          "taskId",
          "title",
          "projectName",
          "projectColorHex",
          "dueUtc",
          "plannedFinishUtc",
          "remainingMinutes",
          "unplacedMinutes",
          "status",
          "note"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "projectColorHex": {
            "type": "string"
          },
          "dueUtc": {
            "type": "string",
            "format": "date-time"
          },
          "plannedFinishUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "remainingMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unplacedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/DeadlineStatus"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "DeadlineOutlook": {
        "required": [
          "items",
          "summary"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeadlineItem"
            }
          },
          "summary": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "DeadlineStatus": {
        "enum": [
          "Overdue",
          "NotPlanned",
          "Late",
          "Tight",
          "OnTrack"
        ]
      },
      "DeleteAccountRequest": {
        "required": [
          "confirm",
          "password"
        ],
        "type": "object",
        "properties": {
          "confirm": {
            "type": "string"
          },
          "password": {
            "type": [
              "null",
              "string"
            ]
          },
          "provider": {
            "type": [
              "null",
              "string"
            ]
          },
          "providerToken": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DeletedResponse": {
        "required": [
          "deleted"
        ],
        "type": "object",
        "properties": {
          "deleted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "DeviceRegistered": {
        "required": [
          "pushConfigured"
        ],
        "type": "object",
        "properties": {
          "pushConfigured": {
            "type": "boolean"
          }
        }
      },
      "DeviceRegisterRequest": {
        "required": [
          "token",
          "platform",
          "environment",
          "deviceName"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "platform": {
            "type": [
              "null",
              "string"
            ]
          },
          "environment": {
            "type": [
              "null",
              "string"
            ]
          },
          "deviceName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DevicesResponse": {
        "required": [
          "pushConfigured",
          "devices"
        ],
        "type": "object",
        "properties": {
          "pushConfigured": {
            "type": "boolean"
          },
          "devices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeviceSummary"
            }
          }
        }
      },
      "DeviceSummary": {
        "required": [
          "id",
          "platform",
          "environment",
          "deviceName",
          "updatedAtUtc",
          "lastSentUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "platform": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "deviceName": {
            "type": [
              "null",
              "string"
            ]
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "lastSentUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "DocAccess": {
        "enum": [
          "View",
          "Edit"
        ]
      },
      "DocDetail": {
        "required": [
          "id",
          "title",
          "body",
          "status",
          "parentId",
          "breadcrumbs",
          "access",
          "canShare",
          "isShared",
          "sharingSummary",
          "createdBy",
          "ownerUserId",
          "owner",
          "createdAtUtc",
          "updatedAtUtc",
          "updatedBy",
          "reviewEveryMonths",
          "nextReviewOn",
          "lastReviewedOn",
          "reviewDue",
          "children",
          "attachments",
          "tasks",
          "revisionCount",
          "stepCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DocStatus"
          },
          "parentId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "breadcrumbs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocLinkSummary"
            }
          },
          "access": {
            "$ref": "#/components/schemas/DocAccess"
          },
          "canShare": {
            "type": "boolean"
          },
          "isShared": {
            "type": "boolean"
          },
          "sharingSummary": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "ownerUserId": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedBy": {
            "type": [
              "null",
              "string"
            ]
          },
          "reviewEveryMonths": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "nextReviewOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "lastReviewedOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "reviewDue": {
            "type": "boolean"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocListItem"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskAttachmentSummary"
            }
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocTaskSummary"
            }
          },
          "revisionCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stepCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "DocEditorModel": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "parentDocId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DocStatus"
          },
          "ownerUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "reviewEveryMonths": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "nextReviewOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "lastReviewedOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "parentOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocOption"
            }
          },
          "ownerOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOption"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskAttachmentSummary"
            }
          }
        }
      },
      "DocGrantee": {
        "enum": [
          "Person",
          "Group",
          "Workspace"
        ]
      },
      "DocGranteeOption": {
        "required": [
          "id",
          "name",
          "detail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DocInheritedPermission": {
        "required": [
          "fromDocId",
          "fromTitle",
          "grantee",
          "userId",
          "groupId",
          "name",
          "access",
          "isCreator"
        ],
        "type": "object",
        "properties": {
          "fromDocId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fromTitle": {
            "type": [
              "null",
              "string"
            ]
          },
          "grantee": {
            "$ref": "#/components/schemas/DocGrantee"
          },
          "userId": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "access": {
            "$ref": "#/components/schemas/DocAccess"
          },
          "isCreator": {
            "type": "boolean"
          }
        }
      },
      "DocLinkSummary": {
        "required": [
          "id",
          "title",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DocStatus"
          }
        }
      },
      "DocListItem": {
        "required": [
          "id",
          "parentId",
          "title",
          "status",
          "position",
          "access",
          "isShared",
          "updatedAtUtc",
          "reviewDue",
          "nextReviewOn"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "parentId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DocStatus"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "access": {
            "$ref": "#/components/schemas/DocAccess"
          },
          "isShared": {
            "type": "boolean"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "reviewDue": {
            "type": "boolean"
          },
          "nextReviewOn": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "DocOption": {
        "required": [
          "id",
          "title",
          "path"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        }
      },
      "DocPermissionItem": {
        "required": [
          "grantee",
          "userId",
          "groupId",
          "name",
          "access"
        ],
        "type": "object",
        "properties": {
          "grantee": {
            "$ref": "#/components/schemas/DocGrantee"
          },
          "userId": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "access": {
            "$ref": "#/components/schemas/DocAccess"
          }
        }
      },
      "DocPermissionRequest": {
        "required": [
          "grantee",
          "userId",
          "groupId",
          "access"
        ],
        "type": "object",
        "properties": {
          "grantee": {
            "$ref": "#/components/schemas/DocGrantee"
          },
          "userId": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "access": {
            "$ref": "#/components/schemas/DocAccess"
          }
        }
      },
      "DocRevisionDetail": {
        "required": [
          "id",
          "title",
          "body",
          "savedAtUtc",
          "savedBy",
          "isCurrent"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "savedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "savedBy": {
            "type": "string"
          },
          "isCurrent": {
            "type": "boolean"
          }
        }
      },
      "DocRevisionItem": {
        "required": [
          "id",
          "savedAtUtc",
          "savedBy",
          "title",
          "isCurrent"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "savedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "savedBy": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "isCurrent": {
            "type": "boolean"
          }
        }
      },
      "DocRunRequest": {
        "required": [
          "title",
          "dueDate",
          "minutesPerStep",
          "steps",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "minutesPerStep": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "steps": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "projectId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "DocRunResult": {
        "required": [
          "taskId",
          "subTaskCount"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "subTaskCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "DocSharing": {
        "required": [
          "canManage",
          "canAddPeople",
          "creatorUserId",
          "createdBy",
          "workspaceName",
          "inherited",
          "permissions",
          "people",
          "groups"
        ],
        "type": "object",
        "properties": {
          "canManage": {
            "type": "boolean"
          },
          "canAddPeople": {
            "type": "boolean"
          },
          "creatorUserId": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "workspaceName": {
            "type": "string"
          },
          "inherited": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocInheritedPermission"
            }
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocPermissionItem"
            }
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocGranteeOption"
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocGranteeOption"
            }
          }
        }
      },
      "DocStatus": {
        "enum": [
          "Draft",
          "Published",
          "Archived"
        ]
      },
      "DocTaskSummary": {
        "required": [
          "id",
          "title",
          "status",
          "dueDate"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "DocTree": {
        "required": [
          "docs",
          "canShare"
        ],
        "type": "object",
        "properties": {
          "docs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocListItem"
            }
          },
          "canShare": {
            "type": "boolean"
          }
        }
      },
      "EmailConfirmedResponse": {
        "required": [
          "confirmed",
          "email"
        ],
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean"
          },
          "email": {
            "type": "string"
          }
        }
      },
      "EndOfDayResponse": {
        "required": [
          "endOfDay"
        ],
        "type": "object",
        "properties": {
          "endOfDay": {
            "type": "string",
            "format": "time"
          }
        }
      },
      "EnumOption": {
        "required": [
          "value",
          "label"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      },
      "EventCreateRequest": {
        "required": [
          "boardStart",
          "title",
          "date",
          "startTime",
          "endTime",
          "isBusy",
          "calendarId"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "isBusy": {
            "type": "boolean"
          },
          "calendarId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "EventMoveRequest": {
        "required": [
          "boardStart",
          "date",
          "startTime",
          "endTime",
          "scope"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "scope": {
            "$ref": "#/components/schemas/RecurrenceEditScope"
          }
        }
      },
      "EventUpdateRequest": {
        "required": [
          "boardStart",
          "title",
          "date",
          "startTime",
          "endTime",
          "isBusy",
          "scope"
        ],
        "type": "object",
        "properties": {
          "boardStart": {
            "type": "string",
            "format": "date"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "isBusy": {
            "type": "boolean"
          },
          "scope": {
            "$ref": "#/components/schemas/RecurrenceEditScope"
          }
        }
      },
      "Feature": {
        "enum": [
          "CalendarSync",
          "InboxAi",
          "PushNotifications",
          "WorkspaceMembers",
          "Groups",
          "TaskInbox",
          "Templates",
          "MultipleSchedules",
          "AttachmentStorage",
          "DocSharing"
        ]
      },
      "FolderTemplateEditorModel": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overwriteTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "repeatMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ProjectRepeatMode"
              }
            ]
          },
          "recurrenceFrequency": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RecurrenceFrequency"
              }
            ]
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateChild"
            }
          },
          "templateName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ForgotPasswordRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "GoogleLinkRequest": {
        "required": [
          "idToken",
          "password"
        ],
        "type": "object",
        "properties": {
          "idToken": {
            "type": "string"
          },
          "password": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "GoogleTokenRequest": {
        "required": [
          "idToken"
        ],
        "type": "object",
        "properties": {
          "idToken": {
            "type": "string"
          }
        }
      },
      "GroupDetail": {
        "required": [
          "id",
          "name",
          "description",
          "yourRole",
          "members"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "yourRole": {
            "$ref": "#/components/schemas/GroupRole"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupMemberSummary"
            }
          }
        }
      },
      "GroupListItem": {
        "required": [
          "id",
          "name",
          "description",
          "role",
          "memberCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/GroupRole"
          },
          "memberCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "GroupMemberRequest": {
        "required": [
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/GroupRole"
          }
        }
      },
      "GroupMemberSummary": {
        "required": [
          "userId",
          "displayName",
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/GroupRole"
          }
        }
      },
      "GroupOption": {
        "required": [
          "id",
          "name",
          "isManager"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "isManager": {
            "type": "boolean"
          }
        }
      },
      "GroupRole": {
        "enum": [
          "Member",
          "Manager"
        ]
      },
      "GroupSaveRequest": {
        "required": [
          "name",
          "description"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ImportAttachmentsRequest": {
        "required": [
          "apiKey",
          "taskIds"
        ],
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "taskIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        }
      },
      "ImportAttachmentsResult": {
        "required": [
          "tasksChecked",
          "filesCopied",
          "linksAdded",
          "bytesCopied",
          "skipped"
        ],
        "type": "object",
        "properties": {
          "tasksChecked": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "filesCopied": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "linksAdded": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bytesCopied": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "skipped": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "descriptionsFilled": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 0
          }
        }
      },
      "ImportJobStarted": {
        "required": [
          "jobId"
        ],
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          }
        }
      },
      "ImportKeyRequest": {
        "required": [
          "apiKey"
        ],
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          }
        }
      },
      "ImportPreviewRequest": {
        "required": [
          "apiKey",
          "workspaceId",
          "workspaceName",
          "includeCompleted"
        ],
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "workspaceId": {
            "type": "string"
          },
          "workspaceName": {
            "type": [
              "null",
              "string"
            ]
          },
          "includeCompleted": {
            "type": "boolean"
          }
        }
      },
      "ImportRunRequest": {
        "required": [
          "sessionId",
          "taskIds",
          "containerIds"
        ],
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string"
          },
          "taskIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "containerIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "refreshImported": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ImportWorkspace": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "InboundEmailStatus": {
        "enum": [
          "Created",
          "Ignored",
          "Failed"
        ]
      },
      "InboundEmailSummary": {
        "required": [
          "id",
          "fromAddress",
          "subject",
          "receivedUtc",
          "processedUtc",
          "status",
          "detail",
          "taskItemId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fromAddress": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "receivedUtc": {
            "type": "string",
            "format": "date-time"
          },
          "processedUtc": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "$ref": "#/components/schemas/InboundEmailStatus"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "taskItemId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "InboxCheckResponse": {
        "required": [
          "processed",
          "overview"
        ],
        "type": "object",
        "properties": {
          "processed": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overview": {
            "$ref": "#/components/schemas/InboxOverview"
          }
        }
      },
      "InboxOverview": {
        "required": [
          "configured",
          "aiConfigured",
          "address",
          "accountEmail",
          "allowedSenders",
          "poller",
          "recent"
        ],
        "type": "object",
        "properties": {
          "configured": {
            "type": "boolean"
          },
          "aiConfigured": {
            "type": "boolean"
          },
          "address": {
            "type": [
              "null",
              "string"
            ]
          },
          "accountEmail": {
            "type": "string"
          },
          "allowedSenders": {
            "type": [
              "null",
              "string"
            ]
          },
          "poller": {
            "$ref": "#/components/schemas/InboxPollerStatus"
          },
          "recent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InboundEmailSummary"
            }
          }
        }
      },
      "InboxPollerStatus": {
        "required": [
          "lastRunUtc",
          "lastSuccessUtc",
          "lastError",
          "lastBatchSize"
        ],
        "type": "object",
        "properties": {
          "lastRunUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastSuccessUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "lastError": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastBatchSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "InviteRequest": {
        "required": [
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          }
        }
      },
      "JsonNode": { },
      "LineageRequest": {
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        }
      },
      "LoginRequest": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "MessageResponse": {
        "required": [
          "message",
          "overview"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "overview": {
            "$ref": "#/components/schemas/CalendarOverview"
          }
        }
      },
      "MoveRequest": {
        "required": [
          "parentId",
          "afterId"
        ],
        "type": "object",
        "properties": {
          "parentId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "afterId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "keepParent": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "Plan": {
        "enum": [
          "Free",
          "Pro",
          "Team",
          "TeamPlus",
          "Organization"
        ]
      },
      "PlanLimit": {
        "required": [
          "plan",
          "memberLimit"
        ],
        "type": "object",
        "properties": {
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "memberLimit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PlannedBlock": {
        "required": [
          "chunkId",
          "startUtc",
          "endUtc",
          "isPinned",
          "isCompleted"
        ],
        "type": "object",
        "properties": {
          "chunkId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "startUtc": {
            "type": "string",
            "format": "date-time"
          },
          "endUtc": {
            "type": "string",
            "format": "date-time"
          },
          "isPinned": {
            "type": "boolean"
          },
          "isCompleted": {
            "type": "boolean"
          }
        }
      },
      "PlannerAllDayBlock": {
        "required": [
          "busyBlockId",
          "title",
          "isBusy",
          "colorHex",
          "startDate",
          "endDate",
          "isRecurring",
          "canEdit"
        ],
        "type": "object",
        "properties": {
          "busyBlockId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "isBusy": {
            "type": "boolean"
          },
          "colorHex": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          }
        }
      },
      "PlannerBacklogTask": {
        "required": [
          "taskId",
          "title",
          "projectName",
          "priority",
          "missedCount",
          "escalationLevel",
          "effectivePriority",
          "dueDate",
          "dueTime",
          "chunkSequence",
          "durationMinutes",
          "reason"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "missedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "effectivePriority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "chunkSequence": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "PlannerBoardModel": {
        "required": [
          "days",
          "unscheduledTasks",
          "lateTasks",
          "plannedAtUtc",
          "userTimeZoneId",
          "userTimeZoneDisplay",
          "schedules",
          "suggestedScrollMinutes",
          "calendars"
        ],
        "type": "object",
        "properties": {
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerDayColumn"
            }
          },
          "unscheduledTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerBacklogTask"
            }
          },
          "lateTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerLateTask"
            }
          },
          "plannedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "userTimeZoneId": {
            "type": "string"
          },
          "userTimeZoneDisplay": {
            "type": "string"
          },
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerScheduleLegend"
            }
          },
          "suggestedScrollMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "calendars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerCalendarLegend"
            }
          },
          "calendarNeedsReconnect": {
            "type": "boolean"
          },
          "taskDocs": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/DocLinkSummary"
              }
            }
          }
        }
      },
      "PlannerBusyBlock": {
        "required": [
          "busyBlockId",
          "title",
          "startTime",
          "endTime",
          "isBusy",
          "isRecurring",
          "colorHex",
          "canEdit",
          "position"
        ],
        "type": "object",
        "properties": {
          "busyBlockId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "isBusy": {
            "type": "boolean"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "colorHex": {
            "type": "string"
          },
          "canEdit": {
            "type": "boolean"
          },
          "position": {
            "$ref": "#/components/schemas/PlannerItemPosition"
          }
        }
      },
      "PlannerCalendarLegend": {
        "required": [
          "calendarId",
          "name",
          "colorHex",
          "isTaskTarget",
          "canEdit",
          "isPrimary"
        ],
        "type": "object",
        "properties": {
          "calendarId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isTaskTarget": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          },
          "isPrimary": {
            "type": "boolean"
          }
        }
      },
      "PlannerDayColumn": {
        "required": [
          "date",
          "timelineStart",
          "timelineEnd",
          "plannedTasks",
          "busyBlocks",
          "scheduleBands",
          "totalPlannedMinutes",
          "totalBusyMinutes",
          "hasDeadlineConflicts"
        ],
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "timelineStart": {
            "type": "string",
            "format": "time"
          },
          "timelineEnd": {
            "type": "string",
            "format": "time"
          },
          "plannedTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerScheduledTask"
            }
          },
          "busyBlocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerBusyBlock"
            }
          },
          "allDayBlocks": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PlannerAllDayBlock"
            }
          },
          "scheduleBands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannerScheduleBand"
            }
          },
          "totalPlannedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalBusyMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hasDeadlineConflicts": {
            "type": "boolean"
          }
        }
      },
      "PlannerItemPosition": {
        "required": [
          "topPercent",
          "heightPercent"
        ],
        "type": "object",
        "properties": {
          "topPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "leftPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double",
            "default": 0
          },
          "widthPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double",
            "default": 100
          }
        }
      },
      "PlannerLateTask": {
        "required": [
          "taskId",
          "title",
          "projectName",
          "priority",
          "dueDate",
          "startsAtUtc",
          "endsAtUtc",
          "dueSummary",
          "displayTimeZone",
          "explanation"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "startsAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "endsAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "dueSummary": {
            "type": "string"
          },
          "displayTimeZone": {
            "type": "string"
          },
          "explanation": {
            "type": "string"
          }
        }
      },
      "PlannerScheduleBand": {
        "required": [
          "scheduleId",
          "scheduleName",
          "colorHex",
          "startTime",
          "endTime",
          "position"
        ],
        "type": "object",
        "properties": {
          "scheduleId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "scheduleName": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "position": {
            "$ref": "#/components/schemas/PlannerItemPosition"
          }
        }
      },
      "PlannerScheduledTask": {
        "required": [
          "chunkId",
          "taskId",
          "title",
          "projectName",
          "projectColorHex",
          "priority",
          "missedCount",
          "escalationLevel",
          "effectivePriority",
          "dueDate",
          "dueTime",
          "chunkSequence",
          "durationMinutes",
          "startTime",
          "endTime",
          "scheduleName",
          "scheduleTimeZoneId",
          "displayTimeZone",
          "isAfterDueDate",
          "isPinned",
          "dueSummary",
          "reasonSummary",
          "explanation",
          "position"
        ],
        "type": "object",
        "properties": {
          "chunkId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "taskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "projectColorHex": {
            "type": "string"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "missedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "effectivePriority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "chunkSequence": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "scheduleName": {
            "type": "string"
          },
          "scheduleTimeZoneId": {
            "type": "string"
          },
          "displayTimeZone": {
            "type": "string"
          },
          "isAfterDueDate": {
            "type": "boolean"
          },
          "isPinned": {
            "type": "boolean"
          },
          "dueSummary": {
            "type": "string"
          },
          "reasonSummary": {
            "type": "string"
          },
          "explanation": {
            "type": "string"
          },
          "position": {
            "$ref": "#/components/schemas/PlannerItemPosition"
          },
          "isCompleted": {
            "type": "boolean",
            "default": false
          },
          "snoozedUntilUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "PlannerScheduleLegend": {
        "required": [
          "scheduleId",
          "name",
          "colorHex",
          "isDefault",
          "timeZoneId",
          "zoneDiffersFromUser"
        ],
        "type": "object",
        "properties": {
          "scheduleId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "timeZoneId": {
            "type": "string"
          },
          "zoneDiffersFromUser": {
            "type": "boolean"
          }
        }
      },
      "PlannerTextSize": {
        "enum": [
          "Default",
          "Compact",
          "Large"
        ]
      },
      "PlanPrice": {
        "required": [
          "plan",
          "yearly",
          "currency",
          "amount",
          "perSeat"
        ],
        "type": "object",
        "properties": {
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "yearly": {
            "type": "boolean"
          },
          "currency": {
            "type": "string"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "perSeat": {
            "type": "boolean"
          }
        }
      },
      "PreferencesSaved": {
        "required": [
          "preferences",
          "movedSchedules"
        ],
        "type": "object",
        "properties": {
          "preferences": {
            "$ref": "#/components/schemas/PreferencesSnapshot"
          },
          "movedSchedules": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PreferencesSnapshot": {
        "required": [
          "displayName",
          "theme",
          "plannerTextSize",
          "timeZoneId",
          "profileImageUrl",
          "pushPlanChanges",
          "pushChunkReminders",
          "email",
          "hasPassword",
          "signInProviders"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "theme": {
            "$ref": "#/components/schemas/ThemePreference"
          },
          "plannerTextSize": {
            "$ref": "#/components/schemas/PlannerTextSize"
          },
          "timeZoneId": {
            "type": [
              "null",
              "string"
            ]
          },
          "profileImageUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "pushPlanChanges": {
            "type": "boolean"
          },
          "pushChunkReminders": {
            "type": "boolean"
          },
          "email": {
            "type": "string"
          },
          "hasPassword": {
            "type": "boolean"
          },
          "signInProviders": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "weekStartsOn": {
            "$ref": "#/components/schemas/DayOfWeek"
          }
        }
      },
      "PreferencesUpdate": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": [
              "null",
              "string"
            ]
          },
          "theme": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ThemePreference"
              }
            ]
          },
          "plannerTextSize": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PlannerTextSize"
              }
            ]
          },
          "timeZoneId": {
            "type": [
              "null",
              "string"
            ]
          },
          "pushPlanChanges": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "pushChunkReminders": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "weekStartsOn": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DayOfWeek"
              }
            ]
          }
        }
      },
      "ProjectDetail": {
        "required": [
          "id",
          "name",
          "description",
          "colorHex",
          "groupId",
          "isRecurring",
          "recurrencePattern",
          "isTemplate",
          "templateName",
          "repeatMode",
          "recurrenceFrequency",
          "recurrenceInterval",
          "currentRound",
          "roundStartDate",
          "nextRoundDate",
          "startDate",
          "dueDate",
          "roundTimeZoneId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "isTemplate": {
            "type": "boolean"
          },
          "templateName": {
            "type": [
              "null",
              "string"
            ]
          },
          "repeatMode": {
            "$ref": "#/components/schemas/ProjectRepeatMode"
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "currentRound": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roundStartDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "nextRoundDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "roundTimeZoneId": {
            "type": "string"
          }
        }
      },
      "ProjectListItem": {
        "required": [
          "id",
          "name",
          "description",
          "colorHex",
          "openTasks",
          "totalTasks",
          "scopeLabel"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "openTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "scopeLabel": {
            "type": "string"
          }
        }
      },
      "ProjectOption": {
        "required": [
          "id",
          "name",
          "groupId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ProjectRepeatMode": {
        "enum": [
          "OnSchedule",
          "WhenDone",
          null
        ]
      },
      "ProjectSaveRequest": {
        "required": [
          "id",
          "name",
          "description",
          "colorHex",
          "groupId",
          "isRecurring",
          "recurrencePattern",
          "sourceTemplateId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "colorHex": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "repeatMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ProjectRepeatMode"
              }
            ]
          },
          "recurrenceFrequency": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RecurrenceFrequency"
              }
            ]
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "nextRoundDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "datesProvided": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ProjectTemplateDetail": {
        "required": [
          "id",
          "name",
          "description",
          "colorHex",
          "isRecurring",
          "recurrencePattern",
          "taskCount",
          "repeatMode",
          "recurrenceFrequency",
          "recurrenceInterval"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "taskCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "repeatMode": {
            "$ref": "#/components/schemas/ProjectRepeatMode"
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateChild"
            }
          }
        }
      },
      "ProjectTemplateSaveRequest": {
        "required": [
          "id",
          "name",
          "description",
          "colorHex",
          "isRecurring",
          "recurrencePattern"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "colorHex": {
            "type": [
              "null",
              "string"
            ]
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "repeatMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ProjectRepeatMode"
              }
            ]
          },
          "recurrenceFrequency": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RecurrenceFrequency"
              }
            ]
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "durationDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "PromotedResponse": {
        "required": [
          "projectId"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "RecurrenceEditScope": {
        "enum": [
          "ThisEvent",
          "ThisAndFollowing",
          "AllEvents"
        ]
      },
      "RecurrenceFrequency": {
        "enum": [
          "None",
          "Daily",
          "Weekly",
          "Monthly",
          "Yearly"
        ]
      },
      "RefreshRequest": {
        "required": [
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "RegisterRequest": {
        "required": [
          "email",
          "password",
          "displayName",
          "inviteToken"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "inviteToken": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RenameRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "ResendConfirmationRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "ResetPasswordRequest": {
        "required": [
          "userId",
          "code",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          }
        }
      },
      "RoleRequest": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          }
        }
      },
      "SavedResponse": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ScheduleDayEditorModel": {
        "type": "object",
        "properties": {
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleTimeBlockEditorModel"
            }
          }
        }
      },
      "ScheduleEditorModel": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "timeZoneId": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleDayEditorModel"
            }
          }
        }
      },
      "ScheduleListItem": {
        "required": [
          "id",
          "name",
          "isDefault"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          }
        }
      },
      "ScheduleOption": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "ScheduleTimeBlockEditorModel": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          }
        }
      },
      "ScheduleWorkspaceModel": {
        "required": [
          "schedules",
          "editor"
        ],
        "type": "object",
        "properties": {
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleListItem"
            }
          },
          "editor": {
            "$ref": "#/components/schemas/ScheduleEditorModel"
          }
        }
      },
      "SearchHit": {
        "required": [
          "kind",
          "id",
          "title",
          "subtitle",
          "url",
          "score",
          "snippet",
          "colorHex",
          "dueDate",
          "done"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/SearchKind"
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": [
              "null",
              "string"
            ]
          },
          "url": {
            "type": "string"
          },
          "score": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "snippet": {
            "type": [
              "null",
              "string"
            ]
          },
          "colorHex": {
            "type": [
              "null",
              "string"
            ]
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "done": {
            "type": "boolean"
          }
        }
      },
      "SearchKind": {
        "enum": [
          "Task",
          "Project",
          "TaskTemplate",
          "ProjectTemplate",
          "Group",
          "Schedule",
          "Doc"
        ]
      },
      "SearchResponse": {
        "required": [
          "query",
          "results"
        ],
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchHit"
            }
          }
        }
      },
      "SharingRequest": {
        "required": [
          "permissions"
        ],
        "type": "object",
        "properties": {
          "permissions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DocPermissionRequest"
            }
          }
        }
      },
      "SnoozeRequest": {
        "required": [
          "until"
        ],
        "type": "object",
        "properties": {
          "until": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "onDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "SnoozeResponse": {
        "required": [
          "snoozedUntilUtc"
        ],
        "type": "object",
        "properties": {
          "snoozedUntilUtc": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "StatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/DocStatus"
          }
        }
      },
      "SubscriptionProvider": {
        "enum": [
          "Stripe",
          "Apple",
          "Manual"
        ]
      },
      "SubscriptionStatus": {
        "enum": [
          "Active",
          "Trialing",
          "PastDue",
          "Canceled",
          "Expired"
        ]
      },
      "SubscriptionSummary": {
        "required": [
          "provider",
          "status",
          "plan",
          "seats",
          "currentPeriodEndUtc",
          "cancelAtPeriodEnd",
          "graceUntilUtc",
          "managedOnWeb"
        ],
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/SubscriptionProvider"
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "seats": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "currentPeriodEndUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean"
          },
          "graceUntilUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "managedOnWeb": {
            "type": "boolean"
          }
        }
      },
      "SubTaskFit": {
        "required": [
          "id",
          "title",
          "startDate",
          "startTime",
          "dueDate",
          "dueTime",
          "newStartDate",
          "newStartTime",
          "newDueDate",
          "newDueTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "newStartDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "newStartTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "newDueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "newDueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          }
        }
      },
      "SubTaskStatus": {
        "required": [
          "id",
          "title",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          }
        }
      },
      "SubTaskSummary": {
        "required": [
          "id",
          "title",
          "status",
          "dueDate"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "TaskAttachmentSummary": {
        "required": [
          "id",
          "fileName",
          "url",
          "contentType",
          "fileSizeBytes",
          "uploadedAtUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fileName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "fileSizeBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "uploadedAtUtc": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TaskBulkDeleteRequest": {
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "replan": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "TaskBulkFailure": {
        "required": [
          "id",
          "title",
          "error"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "error": {
            "type": "string"
          }
        }
      },
      "TaskBulkRequest": {
        "required": [
          "ids",
          "changes"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "changes": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TaskPatch"
              }
            ]
          },
          "replan": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "TaskBulkResult": {
        "required": [
          "updated",
          "failed"
        ],
        "type": "object",
        "properties": {
          "updated": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "failed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskBulkFailure"
            }
          }
        }
      },
      "TaskDetailsModel": {
        "required": [
          "id",
          "title",
          "description",
          "projectName",
          "parentTaskTitle",
          "assignedTo",
          "status",
          "priority",
          "dueDate",
          "dueTime",
          "scheduleName",
          "dueSummary",
          "estimatedHours",
          "isChunked",
          "chunkMinutes",
          "isRecurring",
          "recurrencePattern",
          "isTemplate",
          "templateName",
          "missedCount",
          "escalationLevel",
          "effectivePriority",
          "recurrenceFrequency",
          "recurrenceInterval",
          "recurrenceWeekdays",
          "recurrenceEndDate",
          "attachments",
          "subTasks",
          "chunks"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "parentTaskTitle": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedTo": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "scheduleName": {
            "type": [
              "null",
              "string"
            ]
          },
          "dueSummary": {
            "type": "string"
          },
          "estimatedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isChunked": {
            "type": "boolean"
          },
          "chunkMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "isTemplate": {
            "type": "boolean"
          },
          "templateName": {
            "type": [
              "null",
              "string"
            ]
          },
          "missedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "effectivePriority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceWeekdays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceEndDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskAttachmentSummary"
            }
          },
          "subTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubTaskSummary"
            }
          },
          "chunks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChunkSummary"
            }
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "snoozedUntilUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "waitsFor": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/WaitsForSummary"
            }
          },
          "repeatMode": {
            "$ref": "#/components/schemas/TaskRepeatMode"
          },
          "recurrenceMonthWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "docs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DocLinkSummary"
            }
          }
        }
      },
      "TaskEditorModel": {
        "required": [
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "projectId": {
            "maximum": 2147483647,
            "minimum": 1,
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "parentTaskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "projectTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "assignedToUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "scheduleId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "maxLength": 160,
            "minLength": 0,
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isDueTimeFixed": {
            "type": "boolean"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isStartTimeFixed": {
            "type": "boolean"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "dependsOnTaskIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "snoozedUntilUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "repeatMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TaskRepeatMode"
              }
            ]
          },
          "recurrenceMonthWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "occurrenceIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hasSubTasks": {
            "type": "boolean"
          },
          "startOffsetDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "dueOffsetDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "templateParentOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskOption"
            }
          },
          "projectTemplateOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateOption"
            }
          },
          "templateChildren": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateChild"
            }
          },
          "estimatedHours": {
            "maximum": 1000,
            "minimum": 0.25,
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isChunked": {
            "type": "boolean"
          },
          "chunkMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceWeekdays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recurrenceEndDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "missedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isTemplate": {
            "type": "boolean"
          },
          "templateName": {
            "type": [
              "null",
              "string"
            ]
          },
          "overwriteTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sourceTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "projectOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectOption"
            }
          },
          "scheduleOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleOption"
            }
          },
          "parentTaskOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskOption"
            }
          },
          "groupOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupOption"
            }
          },
          "assigneeOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOption"
            }
          },
          "templateOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateOption"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskAttachmentSummary"
            }
          },
          "docIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "docs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocLinkSummary"
            }
          },
          "docOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocOption"
            }
          }
        }
      },
      "TaskEditorResponse": {
        "required": [
          "editor",
          "endOfDay",
          "statusOptions",
          "priorityOptions"
        ],
        "type": "object",
        "properties": {
          "editor": {
            "$ref": "#/components/schemas/TaskEditorModel"
          },
          "endOfDay": {
            "type": "string",
            "format": "time"
          },
          "statusOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnumOption"
            }
          },
          "priorityOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnumOption"
            }
          }
        }
      },
      "TaskListItem": {
        "required": [
          "id",
          "title",
          "projectName",
          "projectColorHex",
          "parentTaskTitle",
          "assignedTo",
          "status",
          "priority",
          "dueDate",
          "dueTime",
          "dueSummary",
          "estimatedHours",
          "subTaskCount",
          "isChunked",
          "chunkMinutes",
          "missedCount",
          "escalationLevel",
          "effectivePriority",
          "isRecurring",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "projectName": {
            "type": "string"
          },
          "projectColorHex": {
            "type": "string"
          },
          "parentTaskTitle": {
            "type": [
              "null",
              "string"
            ]
          },
          "assignedTo": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "dueSummary": {
            "type": "string"
          },
          "estimatedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "subTaskCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isChunked": {
            "type": "boolean"
          },
          "chunkMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "missedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "escalationLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "effectivePriority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "projectId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "snoozedUntilUtc": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "parentTaskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TaskOption": {
        "required": [
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "TaskPage": {
        "required": [
          "items",
          "total",
          "page",
          "pageSize"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskListItem"
            }
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "page": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pageSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TaskPatch": {
        "type": "object",
        "properties": {
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TaskStatus"
              }
            ]
          },
          "priority": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TaskPriority"
              }
            ]
          },
          "projectId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "parentTaskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "clearParent": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "clearDueDate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "isDueTimeFixed": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "estimatedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "scheduleId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "clearStartDate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "moveDueDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "moveStartDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isChunked": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "chunkMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "assignedToUserId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TaskPlan": {
        "required": [
          "onYourPlan",
          "plannedFor",
          "blocks"
        ],
        "type": "object",
        "properties": {
          "onYourPlan": {
            "type": "boolean"
          },
          "plannedFor": {
            "type": "string"
          },
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlannedBlock"
            }
          }
        }
      },
      "TaskPriority": {
        "enum": [
          "Low",
          "Medium",
          "High",
          "Urgent"
        ]
      },
      "TaskRepeatMode": {
        "enum": [
          "WhenDone",
          "OnSchedule",
          "AfterDone"
        ],
        "default": "WhenDone"
      },
      "TaskStatus": {
        "enum": [
          "NotStarted",
          "InProgress",
          "Waiting",
          "Done"
        ]
      },
      "TaskTemplateEditorModel": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overwriteTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "projectId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "projectTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "parentTaskId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "assignedToUserId": {
            "type": [
              "null",
              "string"
            ]
          },
          "scheduleId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "priority": {
            "$ref": "#/components/schemas/TaskPriority"
          },
          "dueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isDueTimeFixed": {
            "type": "boolean"
          },
          "dueTime": {
            "type": [
              "null",
              "string"
            ],
            "format": "time"
          },
          "estimatedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isChunked": {
            "type": "boolean"
          },
          "chunkMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "templateName": {
            "type": [
              "null",
              "string"
            ]
          },
          "projectOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectOption"
            }
          },
          "projectTemplateOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateOption"
            }
          },
          "parentTemplateOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskOption"
            }
          },
          "scheduleOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleOption"
            }
          },
          "groupOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupOption"
            }
          },
          "assigneeOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOption"
            }
          }
        }
      },
      "TeamInsights": {
        "required": [
          "scope",
          "members",
          "summary"
        ],
        "type": "object",
        "properties": {
          "scope": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberLoad"
            }
          },
          "summary": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TeamMemberLoad": {
        "required": [
          "userId",
          "displayName",
          "email",
          "availableMinutes",
          "plannedMinutes",
          "unplacedMinutes",
          "lateTasks",
          "overdueTasks",
          "days"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "availableMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "plannedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unplacedMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lateTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "overdueTasks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapacityDay"
            }
          }
        }
      },
      "TemplateCatalog": {
        "required": [
          "taskTemplates",
          "projectTemplates"
        ],
        "type": "object",
        "properties": {
          "taskTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateRow"
            }
          },
          "projectTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateRow"
            }
          }
        }
      },
      "TemplateChild": {
        "required": [
          "id",
          "title",
          "startOffsetDays",
          "dueOffsetDays",
          "estimatedHours"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "startOffsetDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "dueOffsetDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "estimatedHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "TemplateKind": {
        "enum": [
          "Task",
          "Folder"
        ]
      },
      "TemplateListItem": {
        "required": [
          "id",
          "kind",
          "name",
          "description",
          "isRecurring",
          "recurrencePattern",
          "repeatMode",
          "recurrenceFrequency",
          "recurrenceInterval"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "kind": {
            "$ref": "#/components/schemas/TemplateKind"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "repeatMode": {
            "$ref": "#/components/schemas/ProjectRepeatMode"
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TemplateOption": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "TemplateRow": {
        "required": [
          "id",
          "name",
          "description",
          "isRecurring",
          "recurrencePattern",
          "usedCount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrencePattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "usedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "repeatMode": {
            "$ref": "#/components/schemas/ProjectRepeatMode"
          },
          "recurrenceFrequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "recurrenceInterval": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 1
          }
        }
      },
      "TemplateWorkspaceModel": {
        "required": [
          "activeKind",
          "folderTemplates",
          "taskTemplates",
          "folderEditor",
          "taskEditor"
        ],
        "type": "object",
        "properties": {
          "activeKind": {
            "$ref": "#/components/schemas/TemplateKind"
          },
          "folderTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateListItem"
            }
          },
          "taskTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateListItem"
            }
          },
          "folderEditor": {
            "$ref": "#/components/schemas/FolderTemplateEditorModel"
          },
          "taskEditor": {
            "$ref": "#/components/schemas/TaskTemplateEditorModel"
          }
        }
      },
      "TenantInvitationPreview": {
        "required": [
          "workspaceName",
          "email",
          "role",
          "expiresAtUtc",
          "invitedBy",
          "workspaceMemberCount"
        ],
        "type": "object",
        "properties": {
          "workspaceName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          },
          "expiresAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "invitedBy": {
            "type": [
              "null",
              "string"
            ]
          },
          "workspaceMemberCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TenantInvitationSummary": {
        "required": [
          "id",
          "email",
          "role",
          "createdAtUtc",
          "expiresAtUtc",
          "inviteUrl"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "inviteUrl": {
            "type": "string"
          }
        }
      },
      "TenantMember": {
        "required": [
          "id",
          "displayName",
          "email",
          "role",
          "hasProfileImage"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          },
          "hasProfileImage": {
            "type": "boolean"
          }
        }
      },
      "TenantOverview": {
        "required": [
          "id",
          "name",
          "yourRole",
          "members",
          "invitations",
          "emailConfigured",
          "plan",
          "memberLimit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "yourRole": {
            "$ref": "#/components/schemas/TenantRole"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantMember"
            }
          },
          "invitations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantInvitationSummary"
            }
          },
          "emailConfigured": {
            "type": "boolean"
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "memberLimit": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TenantRole": {
        "enum": [
          "Member",
          "Admin",
          "Owner"
        ]
      },
      "TenantSummary": {
        "required": [
          "id",
          "name",
          "role"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/TenantRole"
          }
        }
      },
      "ThemePreference": {
        "enum": [
          "Light",
          "Dark"
        ]
      },
      "TimeZoneOption": {
        "required": [
          "id",
          "displayName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        }
      },
      "TimeZoneRequest": {
        "required": [
          "timeZoneId"
        ],
        "type": "object",
        "properties": {
          "timeZoneId": {
            "type": "string"
          }
        }
      },
      "TimeZoneResponse": {
        "required": [
          "applied"
        ],
        "type": "object",
        "properties": {
          "applied": {
            "type": "boolean"
          }
        }
      },
      "TodayTree": {
        "required": [
          "tasks",
          "ancestors"
        ],
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskListItem"
            }
          },
          "ancestors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskListItem"
            }
          }
        }
      },
      "UrlResponse": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "UserOption": {
        "required": [
          "id",
          "displayName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        }
      },
      "VerificationPendingResponse": {
        "required": [
          "verificationRequired",
          "email"
        ],
        "type": "object",
        "properties": {
          "verificationRequired": {
            "type": "boolean"
          },
          "email": {
            "type": "string"
          }
        }
      },
      "WaitsForSummary": {
        "required": [
          "id",
          "title",
          "isDone"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "isDone": {
            "type": "boolean"
          }
        }
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "http",
        "description": "An API key from the Developer page (it starts with dpk_).",
        "scheme": "bearer"
      }
    }
  },
  "security": [
    {
      "apiKey": [ ]
    }
  ],
  "tags": [
    {
      "name": "DayPilot.Web"
    },
    {
      "name": "Auth"
    },
    {
      "name": "Planner"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "Dashboard"
    },
    {
      "name": "Search"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Schedules"
    },
    {
      "name": "Preferences"
    },
    {
      "name": "Tenant"
    },
    {
      "name": "Calendars"
    },
    {
      "name": "Inbox"
    },
    {
      "name": "Groups"
    },
    {
      "name": "Templates"
    },
    {
      "name": "Devices"
    },
    {
      "name": "Billing"
    },
    {
      "name": "Import"
    },
    {
      "name": "Docs"
    },
    {
      "name": "Developer"
    }
  ]
}