{
  "openapi": "3.1.0",
  "info": {
    "title": "Shaire API",
    "version": "1.0.0",
    "description": "Every endpoint a personal access token may call.\n\n**There is no `/v1` prefix, and that is a decision rather than an omission.** A route\nin this document is frozen: a breaking change to one needs a new path, not an edit.\nAdding a field is not breaking; renaming or removing one is, and so is narrowing what a\nfilter accepts. Roughly two-thirds of this API's routes are absent from this document\nand stay entirely free to change — `PUBLIC_API.md` argues each omission.\n\nA token is bound to one workspace at mint time, so **no `x-workspace-id` header is\nrequired or read**. Mint one under Profile → API tokens.\n\nEffective authority is the smaller of two things: what the person who minted the token\nmay do, and what the token was scoped to. A scope is a ceiling, never a promotion.\n\nGuides, worked examples and this document rendered as pages:\nhttps://developers.shairelabs.com"
  },
  "servers": [
    {
      "url": "https://api.shairelabs.com",
      "description": "Production"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "access"
    },
    {
      "name": "activity"
    },
    {
      "name": "attachments"
    },
    {
      "name": "audit"
    },
    {
      "name": "auth"
    },
    {
      "name": "comments"
    },
    {
      "name": "cycle-cadences"
    },
    {
      "name": "cycles"
    },
    {
      "name": "digests"
    },
    {
      "name": "favourites"
    },
    {
      "name": "folders"
    },
    {
      "name": "git"
    },
    {
      "name": "intake"
    },
    {
      "name": "links"
    },
    {
      "name": "lists"
    },
    {
      "name": "milestones"
    },
    {
      "name": "notifications"
    },
    {
      "name": "page-templates"
    },
    {
      "name": "pages"
    },
    {
      "name": "recurrences"
    },
    {
      "name": "reports"
    },
    {
      "name": "search"
    },
    {
      "name": "tag-groups"
    },
    {
      "name": "tags"
    },
    {
      "name": "teams"
    },
    {
      "name": "ticket-templates"
    },
    {
      "name": "tickets"
    },
    {
      "name": "time"
    },
    {
      "name": "trash"
    },
    {
      "name": "views"
    },
    {
      "name": "watchers"
    },
    {
      "name": "workspaces"
    }
  ],
  "paths": {
    "/api/access/grants": {
      "get": {
        "summary": "GET /access/grants",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getAccessGrants",
        "tags": [
          "access"
        ],
        "x-shaire-scope": "workspace:read",
        "parameters": [
          {
            "name": "resourceType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "folder",
                "list"
              ]
            }
          },
          {
            "name": "resourceId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceAccess"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /access/grants",
        "description": "Requires the `workspace:admin` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putAccessGrants",
        "tags": [
          "access"
        ],
        "x-shaire-scope": "workspace:admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Grant"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "resourceType": {
                    "type": "string",
                    "enum": [
                      "folder",
                      "list"
                    ]
                  },
                  "resourceId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "subjectType": {
                    "type": "string",
                    "enum": [
                      "user",
                      "team"
                    ]
                  },
                  "subjectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "level": {
                    "type": "string",
                    "enum": [
                      "read",
                      "comment",
                      "edit",
                      "full"
                    ]
                  }
                },
                "required": [
                  "resourceType",
                  "resourceId",
                  "subjectType",
                  "subjectId",
                  "level"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/access/grants/{id}": {
      "delete": {
        "summary": "DELETE /access/grants/:id",
        "description": "Requires the `workspace:admin` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteAccessGrantsById",
        "tags": [
          "access"
        ],
        "x-shaire-scope": "workspace:admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/access/me": {
      "get": {
        "summary": "GET /access/me",
        "description": "Requires the `workspace:read` scope.\n\nStill answers a workspace that is over its plan's seat count.",
        "operationId": "getAccessMe",
        "tags": [
          "access"
        ],
        "x-shaire-scope": "workspace:read",
        "x-shaire-allow-while-locked": true,
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MyAccess"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/activity": {
      "get": {
        "summary": "GET /activity",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getActivity",
        "tags": [
          "activity"
        ],
        "x-shaire-scope": "comments:read",
        "parameters": [
          {
            "name": "subjectType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "milestone",
                "page"
              ]
            }
          },
          {
            "name": "subjectId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityEvent"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/activity/feed": {
      "get": {
        "summary": "GET /activity/feed",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getActivityFeed",
        "tags": [
          "activity"
        ],
        "x-shaire-scope": "comments:read",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 12
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityFeedItem"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/attachments": {
      "get": {
        "summary": "GET /attachments",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getAttachments",
        "tags": [
          "attachments"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "ownerType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "page",
                "milestone"
              ]
            }
          },
          {
            "name": "ownerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Attachment"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/attachments/{id}": {
      "delete": {
        "summary": "DELETE /attachments/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteAttachmentsById",
        "tags": [
          "attachments"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /attachments/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getAttachmentsById",
        "tags": [
          "attachments"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/audit": {
      "get": {
        "summary": "GET /audit",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getAudit",
        "tags": [
          "audit"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subjectType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "milestone",
                "page",
                "workspace"
              ]
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditPage"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/auth/me": {
      "get": {
        "summary": "GET /auth/me",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getAuthMe",
        "tags": [
          "auth"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfile"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/comments": {
      "get": {
        "summary": "GET /comments",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getComments",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:read",
        "parameters": [
          {
            "name": "subjectType",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "milestone",
                "page"
              ]
            }
          },
          {
            "name": "subjectId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Comment"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /comments",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postComments",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subjectType": {
                    "type": "string",
                    "enum": [
                      "ticket",
                      "milestone",
                      "page"
                    ]
                  },
                  "subjectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true
                  },
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "subjectType",
                  "subjectId",
                  "body"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/comments/{id}": {
      "delete": {
        "summary": "DELETE /comments/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteCommentsById",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /comments/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchCommentsById",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "body": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "body"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/comments/{id}/reactions/{emoji}": {
      "delete": {
        "summary": "DELETE /comments/:id/reactions/:emoji",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteCommentsByIdReactionsByEmoji",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emoji",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /comments/:id/reactions/:emoji",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putCommentsByIdReactionsByEmoji",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emoji",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/comments/{id}/resolution": {
      "delete": {
        "summary": "DELETE /comments/:id/resolution",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteCommentsByIdResolution",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /comments/:id/resolution",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putCommentsByIdResolution",
        "tags": [
          "comments"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/cycle-cadences": {
      "get": {
        "summary": "GET /cycle-cadences",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getCycleCadences",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CycleCadence"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /cycle-cadences",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCycleCadences",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleCadenceDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "folderId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true,
                    "default": null
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "nameTemplate": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "anchorOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "lengthDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 90,
                    "default": 14
                  },
                  "generateAhead": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12,
                    "default": 2
                  },
                  "numberOffset": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9999
                  },
                  "autoRollover": {
                    "type": "boolean",
                    "default": true
                  },
                  "emptyCyclesBeforePause": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12,
                    "default": 2
                  }
                },
                "required": [
                  "name",
                  "nameTemplate",
                  "anchorOn"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/cycle-cadences/{id}": {
      "delete": {
        "summary": "DELETE /cycle-cadences/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteCycleCadencesById",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sprints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "keep",
                "discard"
              ],
              "default": "keep"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /cycle-cadences/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getCycleCadencesById",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleCadenceDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /cycle-cadences/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchCycleCadencesById",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleCadenceDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "nameTemplate": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "anchorOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "lengthDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 90
                  },
                  "generateAhead": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12
                  },
                  "autoRollover": {
                    "type": "boolean"
                  },
                  "emptyCyclesBeforePause": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/cycle-cadences/{id}/archive-ended": {
      "post": {
        "summary": "POST /cycle-cadences/:id/archive-ended",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCycleCadencesByIdArchiveEnded",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedCycleCount"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/cycle-cadences/{id}/resume": {
      "post": {
        "summary": "POST /cycle-cadences/:id/resume",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCycleCadencesByIdResume",
        "tags": [
          "cycle-cadences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleCadenceDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/cycles": {
      "get": {
        "summary": "GET /cycles",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getCycles",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Cycle"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /cycles",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCycles",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "startsOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "endsOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "capacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true,
                    "default": null
                  },
                  "autoRollover": {
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "name",
                  "startsOn",
                  "endsOn"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/cycles/{id}": {
      "delete": {
        "summary": "DELETE /cycles/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteCyclesById",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /cycles/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getCyclesById",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /cycles/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchCyclesById",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "startsOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "endsOn": {
                    "type": "string",
                    "format": "date"
                  },
                  "capacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true
                  },
                  "autoRollover": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/cycles/{id}/archive": {
      "post": {
        "summary": "POST /cycles/:id/archive",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCyclesByIdArchive",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/cycles/{id}/unarchive": {
      "post": {
        "summary": "POST /cycles/:id/unarchive",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postCyclesByIdUnarchive",
        "tags": [
          "cycles"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/digests/preferences": {
      "get": {
        "summary": "GET /digests/preferences",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getDigestsPreferences",
        "tags": [
          "digests"
        ],
        "x-shaire-scope": "comments:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DigestPreferences"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /digests/preferences",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchDigestsPreferences",
        "tags": [
          "digests"
        ],
        "x-shaire-scope": "comments:write",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DigestPreferences"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "off",
                      "daily",
                      "weekly"
                    ]
                  },
                  "hour": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 23
                  },
                  "weekday": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 6
                  },
                  "timezone": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "assigned",
                      "mentions",
                      "comments",
                      "due",
                      "watching"
                    ]
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/favourites": {
      "get": {
        "summary": "GET /favourites",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getFavourites",
        "tags": [
          "favourites"
        ],
        "x-shaire-scope": "comments:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Favourite"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/favourites/{type}/{id}": {
      "delete": {
        "summary": "DELETE /favourites/:type/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteFavouritesByTypeById",
        "tags": [
          "favourites"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /favourites/:type/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putFavouritesByTypeById",
        "tags": [
          "favourites"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/folders": {
      "get": {
        "summary": "GET /folders",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getFolders",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Folder"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /folders",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postFolders",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "statusGroupId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/folders/{id}": {
      "patch": {
        "summary": "PATCH /folders/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchFoldersById",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "glyph": {
                    "type": "string",
                    "enum": [
                      "clipboard-list",
                      "flag",
                      "kanban",
                      "layout-list",
                      "list-checks",
                      "milestone",
                      "table",
                      "target",
                      "briefcase",
                      "building",
                      "chart-bar",
                      "chart-pie",
                      "handshake",
                      "presentation",
                      "trending-up",
                      "users",
                      "bug",
                      "cloud",
                      "code",
                      "cpu",
                      "database",
                      "git-branch",
                      "server",
                      "terminal",
                      "hammer",
                      "key",
                      "lock",
                      "package",
                      "plug",
                      "settings",
                      "shield",
                      "wrench",
                      "brush",
                      "camera",
                      "image",
                      "layers",
                      "music",
                      "palette",
                      "pen-tool",
                      "video",
                      "bell",
                      "inbox",
                      "mail",
                      "megaphone",
                      "message-square",
                      "mic",
                      "phone",
                      "send",
                      "award",
                      "credit-card",
                      "dollar-sign",
                      "gift",
                      "receipt",
                      "shopping-cart",
                      "trophy",
                      "truck",
                      "book-open",
                      "graduation-cap",
                      "heart",
                      "lightbulb",
                      "rocket",
                      "sparkles",
                      "star",
                      "zap"
                    ],
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/folders/{id}/move": {
      "post": {
        "summary": "POST /folders/:id/move",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postFoldersByIdMove",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "parentId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/folders/{id}/status-group": {
      "patch": {
        "summary": "PATCH /folders/:id/status-group",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchFoldersByIdStatusGroup",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "statusGroupId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "statusGroupId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/folders/{id}/tag-groups": {
      "put": {
        "summary": "PUT /folders/:id/tag-groups",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putFoldersByIdTagGroups",
        "tags": [
          "folders"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tagGroupIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                },
                "required": [
                  "tagGroupIds"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/git/connections": {
      "get": {
        "summary": "GET /git/connections",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitConnections",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitConnection"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/connections/{id}/repositories": {
      "get": {
        "summary": "GET /git/connections/:id/repositories",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitConnectionsByIdRepositories",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitRemoteRepository"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/links/{id}": {
      "delete": {
        "summary": "DELETE /git/links/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteGitLinksById",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/providers": {
      "get": {
        "summary": "GET /git/providers",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitProviders",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitProvider"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/repositories": {
      "get": {
        "summary": "GET /git/repositories",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitRepositories",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitRepository"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /git/repositories",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postGitRepositories",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GitRepository"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "connectionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "externalId": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "connectionId",
                  "externalId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/git/repositories/{id}": {
      "delete": {
        "summary": "DELETE /git/repositories/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteGitRepositoriesById",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/tickets/{id}/branches": {
      "post": {
        "summary": "POST /git/tickets/:id/branches",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postGitTicketsByIdBranches",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketGitLink"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "repositoryId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "baseBranch": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  }
                },
                "required": [
                  "repositoryId",
                  "baseBranch",
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/git/tickets/{id}/links": {
      "get": {
        "summary": "GET /git/tickets/:id/links",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitTicketsByIdLinks",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TicketGitLink"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/git/transition-rules": {
      "get": {
        "summary": "GET /git/transition-rules",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getGitTransitionRules",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitTransitionRule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /git/transition-rules",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putGitTransitionRules",
        "tags": [
          "git"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GitTransitionRule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "enum": [
                            "branch_created",
                            "pr_opened",
                            "pr_ready",
                            "pr_merged",
                            "pr_closed"
                          ]
                        },
                        "statusId": {
                          "type": "string",
                          "format": "uuid",
                          "nullable": true
                        }
                      },
                      "required": [
                        "event",
                        "statusId"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "rules"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/intake/forms": {
      "get": {
        "summary": "GET /intake/forms",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getIntakeForms",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IntakeForm"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /intake/forms",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postIntakeForms",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntakeForm"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "listId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "heading": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "intro": {
                    "type": "string",
                    "maxLength": 2000,
                    "nullable": true,
                    "default": null
                  },
                  "confirmation": {
                    "type": "string",
                    "maxLength": 500,
                    "nullable": true,
                    "default": null
                  },
                  "detailsLabel": {
                    "type": "string",
                    "maxLength": 120,
                    "nullable": true,
                    "default": null
                  },
                  "collectSubmitter": {
                    "type": "boolean",
                    "default": true
                  },
                  "requireSubmitterEmail": {
                    "type": "boolean",
                    "default": false
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "fieldId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "required": {
                          "type": "boolean",
                          "default": false
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 120,
                          "nullable": true,
                          "default": null
                        },
                        "help": {
                          "type": "string",
                          "maxLength": 300,
                          "nullable": true,
                          "default": null
                        }
                      },
                      "required": [
                        "fieldId"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 40,
                    "default": []
                  },
                  "defaultStatusId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true,
                    "default": null
                  },
                  "defaultPriority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ],
                    "default": "none"
                  },
                  "defaultAssigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "maxItems": 20,
                    "default": []
                  },
                  "defaultTagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "maxItems": 20,
                    "default": []
                  },
                  "dailyLimit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000,
                    "default": 200
                  }
                },
                "required": [
                  "listId",
                  "name",
                  "heading"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/intake/forms/{id}": {
      "delete": {
        "summary": "DELETE /intake/forms/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteIntakeFormsById",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /intake/forms/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getIntakeFormsById",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntakeForm"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /intake/forms/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchIntakeFormsById",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntakeForm"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "heading": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "intro": {
                    "type": "string",
                    "maxLength": 2000,
                    "nullable": true
                  },
                  "confirmation": {
                    "type": "string",
                    "maxLength": 500,
                    "nullable": true
                  },
                  "detailsLabel": {
                    "type": "string",
                    "maxLength": 120,
                    "nullable": true
                  },
                  "collectSubmitter": {
                    "type": "boolean"
                  },
                  "requireSubmitterEmail": {
                    "type": "boolean"
                  },
                  "fields": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "fieldId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "required": {
                          "type": "boolean",
                          "default": false
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 120,
                          "nullable": true,
                          "default": null
                        },
                        "help": {
                          "type": "string",
                          "maxLength": 300,
                          "nullable": true,
                          "default": null
                        }
                      },
                      "required": [
                        "fieldId"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 40
                  },
                  "defaultStatusId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "defaultPriority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ]
                  },
                  "defaultAssigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "maxItems": 20
                  },
                  "defaultTagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "maxItems": 20
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "closesAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "dailyLimit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/intake/forms/{id}/submissions": {
      "get": {
        "summary": "GET /intake/forms/:id/submissions",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getIntakeFormsByIdSubmissions",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IntakeSubmission"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/intake/forms/{id}/submit": {
      "post": {
        "summary": "POST /intake/forms/:id/submit",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postIntakeFormsByIdSubmit",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberSubmitResponse"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "details": {
                    "type": "string",
                    "maxLength": 5000,
                    "nullable": true,
                    "default": null
                  },
                  "values": {
                    "type": "object",
                    "additionalProperties": {},
                    "default": {}
                  },
                  "submitterName": {
                    "type": "string",
                    "maxLength": 120,
                    "nullable": true,
                    "default": null
                  },
                  "submitterEmail": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 320,
                    "nullable": true,
                    "default": null
                  },
                  "website": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "required": [
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/intake/links": {
      "get": {
        "summary": "GET /intake/links",
        "description": "Requires the `workspace:admin` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getIntakeLinks",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "workspace:admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PublicIntakeLink"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/intake/submissions": {
      "get": {
        "summary": "GET /intake/submissions",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getIntakeSubmissions",
        "tags": [
          "intake"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "ticketId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/IntakeSubmission"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/links": {
      "get": {
        "summary": "GET /links",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getLinks",
        "tags": [
          "links"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "page",
                "milestone"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "linkType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "relates_to",
                "documents",
                "blocks",
                "duplicates",
                "references"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityLink"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /links",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postLinks",
        "tags": [
          "links"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityLink"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "ticket",
                          "page",
                          "milestone"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "required": [
                      "type",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  "target": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "ticket",
                          "page",
                          "milestone"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "required": [
                      "type",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  "linkType": {
                    "type": "string",
                    "enum": [
                      "relates_to",
                      "documents",
                      "blocks",
                      "duplicates",
                      "references"
                    ],
                    "default": "relates_to"
                  }
                },
                "required": [
                  "source",
                  "target"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/links/{id}": {
      "delete": {
        "summary": "DELETE /links/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteLinksById",
        "tags": [
          "links"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/lists": {
      "get": {
        "summary": "GET /lists",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getLists",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/List"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /lists",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postLists",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "folderId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "folderId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/lists/{id}": {
      "get": {
        "summary": "GET /lists/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getListsById",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /lists/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchListsById",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "glyph": {
                    "type": "string",
                    "enum": [
                      "clipboard-list",
                      "flag",
                      "kanban",
                      "layout-list",
                      "list-checks",
                      "milestone",
                      "table",
                      "target",
                      "briefcase",
                      "building",
                      "chart-bar",
                      "chart-pie",
                      "handshake",
                      "presentation",
                      "trending-up",
                      "users",
                      "bug",
                      "cloud",
                      "code",
                      "cpu",
                      "database",
                      "git-branch",
                      "server",
                      "terminal",
                      "hammer",
                      "key",
                      "lock",
                      "package",
                      "plug",
                      "settings",
                      "shield",
                      "wrench",
                      "brush",
                      "camera",
                      "image",
                      "layers",
                      "music",
                      "palette",
                      "pen-tool",
                      "video",
                      "bell",
                      "inbox",
                      "mail",
                      "megaphone",
                      "message-square",
                      "mic",
                      "phone",
                      "send",
                      "award",
                      "credit-card",
                      "dollar-sign",
                      "gift",
                      "receipt",
                      "shopping-cart",
                      "trophy",
                      "truck",
                      "book-open",
                      "graduation-cap",
                      "heart",
                      "lightbulb",
                      "rocket",
                      "sparkles",
                      "star",
                      "zap"
                    ],
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/lists/{id}/move": {
      "post": {
        "summary": "POST /lists/:id/move",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postListsByIdMove",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "folderId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "folderId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/lists/{listId}/fields": {
      "get": {
        "summary": "GET /lists/:listId/fields",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getListsByListIdFields",
        "tags": [
          "lists"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/milestones": {
      "get": {
        "summary": "GET /milestones",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getMilestones",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Milestone"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /milestones",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postMilestones",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  }
                },
                "required": [
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/milestones/{id}": {
      "delete": {
        "summary": "DELETE /milestones/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteMilestonesById",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /milestones/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getMilestonesById",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /milestones/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchMilestonesById",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/milestones/{id}/summary": {
      "get": {
        "summary": "GET /milestones/:id/summary",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getMilestonesByIdSummary",
        "tags": [
          "milestones"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneSummary"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/notifications": {
      "get": {
        "summary": "GET /notifications",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getNotifications",
        "tags": [
          "notifications"
        ],
        "x-shaire-scope": "comments:read",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "unread"
              ],
              "default": "all"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPage"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/notifications/read": {
      "post": {
        "summary": "POST /notifications/read",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postNotificationsRead",
        "tags": [
          "notifications"
        ],
        "x-shaire-scope": "comments:write",
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "minItems": 1,
                    "maxItems": 200
                  }
                },
                "required": [
                  "ids"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/notifications/read-all": {
      "post": {
        "summary": "POST /notifications/read-all",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postNotificationsReadAll",
        "tags": [
          "notifications"
        ],
        "x-shaire-scope": "comments:write",
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/notifications/unread-count": {
      "get": {
        "summary": "GET /notifications/unread-count",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getNotificationsUnreadCount",
        "tags": [
          "notifications"
        ],
        "x-shaire-scope": "comments:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCount"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/page-templates": {
      "get": {
        "summary": "GET /page-templates",
        "description": "Requires the `pages:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getPageTemplates",
        "tags": [
          "page-templates"
        ],
        "x-shaire-scope": "pages:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PageTemplate"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /page-templates",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postPageTemplates",
        "tags": [
          "page-templates"
        ],
        "x-shaire-scope": "pages:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageTemplate"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "content": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/page-templates/{id}": {
      "delete": {
        "summary": "DELETE /page-templates/:id",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deletePageTemplatesById",
        "tags": [
          "page-templates"
        ],
        "x-shaire-scope": "pages:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /page-templates/:id",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchPageTemplatesById",
        "tags": [
          "page-templates"
        ],
        "x-shaire-scope": "pages:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageTemplate"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "content": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/pages": {
      "get": {
        "summary": "GET /pages",
        "description": "Requires the `pages:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getPages",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Page"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /pages",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postPages",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "content": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/pages/{id}": {
      "delete": {
        "summary": "DELETE /pages/:id",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deletePagesById",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/pages/{id}/move": {
      "post": {
        "summary": "POST /pages/:id/move",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postPagesByIdMove",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "parentId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/pages/{pageId}/versions": {
      "get": {
        "summary": "GET /pages/:pageId/versions",
        "description": "Requires the `pages:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getPagesByPageIdVersions",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:read",
        "parameters": [
          {
            "name": "pageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PageVersionSummary"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/pages/{pageId}/versions/{versionId}/restore": {
      "post": {
        "summary": "POST /pages/:pageId/versions/:versionId/restore",
        "description": "Requires the `pages:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postPagesByPageIdVersionsByVersionIdRestore",
        "tags": [
          "pages"
        ],
        "x-shaire-scope": "pages:write",
        "parameters": [
          {
            "name": "pageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/recurrences": {
      "get": {
        "summary": "GET /recurrences",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getRecurrences",
        "tags": [
          "recurrences"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "templateId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TicketRecurrence"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /recurrences",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postRecurrences",
        "tags": [
          "recurrences"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketRecurrence"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cadence": {
                    "type": "string",
                    "enum": [
                      "daily",
                      "weekly",
                      "monthly"
                    ]
                  },
                  "interval": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 52,
                    "default": 1
                  },
                  "weekdays": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 6
                    },
                    "maxItems": 7,
                    "default": []
                  },
                  "dayOfMonth": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 31,
                    "nullable": true,
                    "default": null
                  },
                  "hour": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 23,
                    "default": 9
                  },
                  "timezone": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "default": "UTC"
                  },
                  "templateId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "listId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "dueInDays": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3650,
                    "nullable": true,
                    "default": null
                  },
                  "active": {
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "cadence",
                  "templateId",
                  "listId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/recurrences/{id}": {
      "delete": {
        "summary": "DELETE /recurrences/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteRecurrencesById",
        "tags": [
          "recurrences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /recurrences/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchRecurrencesById",
        "tags": [
          "recurrences"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketRecurrence"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cadence": {
                    "type": "string",
                    "enum": [
                      "daily",
                      "weekly",
                      "monthly"
                    ]
                  },
                  "interval": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 52
                  },
                  "weekdays": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 6
                    },
                    "maxItems": 7
                  },
                  "dayOfMonth": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 31,
                    "nullable": true
                  },
                  "hour": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 23
                  },
                  "timezone": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "listId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "dueInDays": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3650,
                    "nullable": true
                  },
                  "active": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/reports/burndown": {
      "get": {
        "summary": "GET /reports/burndown",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsBurndown",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BurndownReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/reports/cycle-time": {
      "get": {
        "summary": "GET /reports/cycle-time",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsCycleTime",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleTimeReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/reports/throughput": {
      "get": {
        "summary": "GET /reports/throughput",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsThroughput",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "assigneeId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThroughputReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/reports/time": {
      "get": {
        "summary": "GET /reports/time",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsTime",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/reports/velocity": {
      "get": {
        "summary": "GET /reports/velocity",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsVelocity",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 24,
              "default": 6
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VelocityReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/reports/workload": {
      "get": {
        "summary": "GET /reports/workload",
        "description": "Requires the `reports:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getReportsWorkload",
        "tags": [
          "reports"
        ],
        "x-shaire-scope": "reports:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadReport"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/search": {
      "get": {
        "summary": "GET /search",
        "description": "Requires the `search:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getSearch",
        "tags": [
          "search"
        ],
        "x-shaire-scope": "search:read",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "page",
                "milestone"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchHit"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/tag-groups": {
      "get": {
        "summary": "GET /tag-groups",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTagGroups",
        "tags": [
          "tag-groups"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagGroup"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /tag-groups",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTagGroups",
        "tags": [
          "tag-groups"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagGroup"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tag-groups/{id}": {
      "delete": {
        "summary": "DELETE /tag-groups/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTagGroupsById",
        "tags": [
          "tag-groups"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /tag-groups/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTagGroupsById",
        "tags": [
          "tag-groups"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagGroup"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tags": {
      "get": {
        "summary": "GET /tags",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTags",
        "tags": [
          "tags"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /tags",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTags",
        "tags": [
          "tags"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "hue": {
                    "type": "string",
                    "enum": [
                      "red",
                      "orange",
                      "amber",
                      "lime",
                      "green",
                      "teal",
                      "cyan",
                      "blue",
                      "indigo",
                      "violet",
                      "fuchsia",
                      "pink",
                      "brown",
                      "olive",
                      "mauve",
                      "zinc"
                    ]
                  },
                  "tagGroupId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tags/{id}": {
      "delete": {
        "summary": "DELETE /tags/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTagsById",
        "tags": [
          "tags"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /tags/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTagsById",
        "tags": [
          "tags"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "hue": {
                    "type": "string",
                    "enum": [
                      "red",
                      "orange",
                      "amber",
                      "lime",
                      "green",
                      "teal",
                      "cyan",
                      "blue",
                      "indigo",
                      "violet",
                      "fuchsia",
                      "pink",
                      "brown",
                      "olive",
                      "mauve",
                      "zinc"
                    ]
                  },
                  "tagGroupId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/teams": {
      "get": {
        "summary": "GET /teams",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTeams",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Team"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /teams",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTeams",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/teams/{id}": {
      "delete": {
        "summary": "DELETE /teams/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTeamsById",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /teams/:id",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTeamsById",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /teams/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTeamsById",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/teams/{id}/members": {
      "put": {
        "summary": "PUT /teams/:id/members",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putTeamsByIdMembers",
        "tags": [
          "teams"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "memberIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "maxItems": 200
                  }
                },
                "required": [
                  "memberIds"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/ticket-templates": {
      "get": {
        "summary": "GET /ticket-templates",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTicketTemplates",
        "tags": [
          "ticket-templates"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TicketTemplate"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /ticket-templates",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketTemplates",
        "tags": [
          "ticket-templates"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketTemplate"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ],
                    "default": "none"
                  },
                  "estimate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  },
                  "tagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  }
                },
                "required": [
                  "name",
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/ticket-templates/{id}": {
      "delete": {
        "summary": "DELETE /ticket-templates/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTicketTemplatesById",
        "tags": [
          "ticket-templates"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /ticket-templates/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTicketTemplatesById",
        "tags": [
          "ticket-templates"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketTemplate"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ],
                    "default": "none"
                  },
                  "estimate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  },
                  "tagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets": {
      "get": {
        "summary": "GET /tickets",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTickets",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "statusId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "systemicState",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "assigneeId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "tagId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "none"
                      ]
                    }
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "none"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "tagMatch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "all"
              ]
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "low",
                "medium",
                "high",
                "urgent"
              ]
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "only",
                "with"
              ]
            }
          },
          {
            "name": "fieldId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fieldValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 200
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TicketSummary"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /tickets",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTickets",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "listId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "statusId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ],
                    "default": "none"
                  },
                  "milestoneId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "cycleId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "dueDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "estimate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  },
                  "tagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "default": []
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "linkTo": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "ticket",
                          "page",
                          "milestone"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "required": [
                      "type",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  "linkType": {
                    "type": "string",
                    "enum": [
                      "relates_to",
                      "documents",
                      "blocks",
                      "duplicates",
                      "references"
                    ],
                    "default": "relates_to"
                  },
                  "customFields": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        }
                      ],
                      "nullable": true
                    }
                  }
                },
                "required": [
                  "listId",
                  "title"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/{id}": {
      "delete": {
        "summary": "DELETE /tickets/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTicketsById",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /tickets/:id",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTicketsById",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /tickets/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTicketsById",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "doc"
                        ]
                      },
                      "content": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": true,
                    "nullable": true
                  },
                  "statusId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "none",
                      "low",
                      "medium",
                      "high",
                      "urgent"
                    ]
                  },
                  "milestoneId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "cycleId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "dueDate": {
                    "type": "string",
                    "format": "date",
                    "nullable": true
                  },
                  "estimate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999.99,
                    "nullable": true
                  },
                  "assigneeIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "tagIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "parentId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "customFields": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        }
                      ],
                      "nullable": true
                    }
                  },
                  "overrideWorkflow": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/{id}/archive": {
      "post": {
        "summary": "POST /tickets/:id/archive",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsByIdArchive",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/tickets/{id}/duplicate": {
      "post": {
        "summary": "POST /tickets/:id/duplicate",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsByIdDuplicate",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "includeSubtasks": {
                    "type": "boolean",
                    "default": false
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/{id}/move": {
      "post": {
        "summary": "POST /tickets/:id/move",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsByIdMove",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "listId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "statusId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "listId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/{id}/reorder": {
      "post": {
        "summary": "POST /tickets/:id/reorder",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsByIdReorder",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "afterId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/{id}/unarchive": {
      "post": {
        "summary": "POST /tickets/:id/unarchive",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsByIdUnarchive",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/tickets/bulk": {
      "post": {
        "summary": "POST /tickets/bulk",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsBulk",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkTicketsResult"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "minItems": 1,
                    "maxItems": 200
                  },
                  "patch": {
                    "type": "object",
                    "properties": {
                      "statusId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "priority": {
                        "type": "string",
                        "enum": [
                          "none",
                          "low",
                          "medium",
                          "high",
                          "urgent"
                        ]
                      },
                      "milestoneId": {
                        "type": "string",
                        "format": "uuid",
                        "nullable": true
                      },
                      "cycleId": {
                        "type": "string",
                        "format": "uuid",
                        "nullable": true
                      },
                      "startDate": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                      },
                      "dueDate": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                      },
                      "estimate": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 9999.99,
                        "nullable": true
                      },
                      "customFields": {
                        "type": "object",
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "nullable": true
                        }
                      },
                      "assigneeIds": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "add",
                              "remove",
                              "set"
                            ]
                          },
                          "ids": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            }
                          }
                        },
                        "required": [
                          "mode",
                          "ids"
                        ],
                        "additionalProperties": false
                      },
                      "tagIds": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "add",
                              "remove",
                              "set"
                            ]
                          },
                          "ids": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            }
                          }
                        },
                        "required": [
                          "mode",
                          "ids"
                        ],
                        "additionalProperties": false
                      },
                      "archived": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "overrideWorkflow": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "ids",
                  "patch"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/bulk/delete": {
      "post": {
        "summary": "POST /tickets/bulk/delete",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTicketsBulkDelete",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkDeleteTicketsResult"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "minItems": 1,
                    "maxItems": 200
                  }
                },
                "required": [
                  "ids"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/tickets/counts": {
      "get": {
        "summary": "GET /tickets/counts",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTicketsCounts",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "statusId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "systemicState",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "assigneeId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "tagId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "none"
                      ]
                    }
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "none"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "tagMatch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "all"
              ]
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "low",
                "medium",
                "high",
                "urgent"
              ]
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "only",
                "with"
              ]
            }
          },
          {
            "name": "fieldId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fieldValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "status",
                "assignee",
                "priority",
                "milestone",
                "cycle"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketCounts"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/tickets/dependencies": {
      "get": {
        "summary": "GET /tickets/dependencies",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTicketsDependencies",
        "tags": [
          "tickets"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "cycleId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "statusId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "systemicState",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "assigneeId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "enum": [
                    "none"
                  ]
                }
              ]
            }
          },
          {
            "name": "tagId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "none"
                      ]
                    }
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "none"
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "tagMatch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "all"
              ]
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "low",
                "medium",
                "high",
                "urgent"
              ]
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "only",
                "with"
              ]
            }
          },
          {
            "name": "fieldId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fieldValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 200
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TicketDependency"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/time": {
      "post": {
        "summary": "POST /time",
        "description": "Requires the `time:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTime",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeEntry"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ticketId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "seconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 86400
                  },
                  "startedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 500,
                    "nullable": true
                  }
                },
                "required": [
                  "ticketId",
                  "seconds",
                  "startedAt"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/time/{id}": {
      "delete": {
        "summary": "DELETE /time/:id",
        "description": "Requires the `time:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteTimeById",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /time/:id",
        "description": "Requires the `time:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchTimeById",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeEntry"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "seconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 86400
                  },
                  "startedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 500,
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/time/running": {
      "get": {
        "summary": "GET /time/running",
        "description": "Requires the `time:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTimeRunning",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/RunningTimer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/time/start": {
      "post": {
        "summary": "POST /time/start",
        "description": "Requires the `time:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTimeStart",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartTimerResult"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ticketId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 500,
                    "nullable": true
                  }
                },
                "required": [
                  "ticketId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/time/stop": {
      "post": {
        "summary": "POST /time/stop",
        "description": "Requires the `time:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTimeStop",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/StoppedTimer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/time/tickets/{ticketId}": {
      "get": {
        "summary": "GET /time/tickets/:ticketId",
        "description": "Requires the `time:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTimeTicketsByTicketId",
        "tags": [
          "time"
        ],
        "x-shaire-scope": "time:read",
        "parameters": [
          {
            "name": "ticketId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketTime"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/trash": {
      "get": {
        "summary": "GET /trash",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getTrash",
        "tags": [
          "trash"
        ],
        "x-shaire-scope": "tickets:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TrashItem"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/trash/{type}/{id}/restore": {
      "post": {
        "summary": "POST /trash/:type/:id/restore",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTrashByTypeByIdRestore",
        "tags": [
          "trash"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/trash/restore": {
      "post": {
        "summary": "POST /trash/restore",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postTrashRestore",
        "tags": [
          "trash"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRestoreResult"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "ticket",
                      "page",
                      "milestone"
                    ]
                  },
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "minItems": 1,
                    "maxItems": 200
                  }
                },
                "required": [
                  "type",
                  "ids"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/views": {
      "get": {
        "summary": "GET /views",
        "description": "Requires the `tickets:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getViews",
        "tags": [
          "views"
        ],
        "x-shaire-scope": "tickets:read",
        "parameters": [
          {
            "name": "listId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SavedView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /views",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postViews",
        "tags": [
          "views"
        ],
        "x-shaire-scope": "tickets:write",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedView"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "listId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true,
                    "default": null
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true,
                    "default": null
                  },
                  "shared": {
                    "type": "boolean",
                    "default": false
                  },
                  "viewMode": {
                    "type": "string",
                    "enum": [
                      "list",
                      "board",
                      "timeline",
                      "calendar"
                    ]
                  },
                  "groupBy": {
                    "type": "string",
                    "enum": [
                      "status",
                      "assignee",
                      "priority",
                      "milestone",
                      "cycle"
                    ]
                  },
                  "filter": {
                    "type": "object",
                    "properties": {
                      "listId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "milestoneId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "cycleId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "statusId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "systemicState": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "open",
                              "in_progress",
                              "done",
                              "canceled"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "open",
                                "in_progress",
                                "done",
                                "canceled"
                              ]
                            }
                          }
                        ]
                      },
                      "assigneeId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "tagId": {
                        "anyOf": [
                          {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "uuid"
                              },
                              {
                                "type": "string",
                                "enum": [
                                  "none"
                                ]
                              }
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "none"
                                  ]
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "tagMatch": {
                        "type": "string",
                        "enum": [
                          "any",
                          "all"
                        ]
                      },
                      "priority": {
                        "type": "string",
                        "enum": [
                          "none",
                          "low",
                          "medium",
                          "high",
                          "urgent"
                        ]
                      },
                      "dueBefore": {
                        "type": "string",
                        "format": "date"
                      },
                      "archived": {
                        "type": "string",
                        "enum": [
                          "only",
                          "with"
                        ]
                      },
                      "fieldId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "fieldValue": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false,
                    "default": {}
                  },
                  "sort": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "manual",
                              "created",
                              "updated",
                              "title",
                              "milestone",
                              "cycle",
                              "due",
                              "priority",
                              "tag",
                              "field"
                            ],
                            "default": "created"
                          },
                          "fieldId": {
                            "type": "string",
                            "format": "uuid",
                            "nullable": true,
                            "default": null
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "default": "asc"
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "enum": [
                                "manual",
                                "created",
                                "updated",
                                "title",
                                "milestone",
                                "cycle",
                                "due",
                                "priority",
                                "tag",
                                "field"
                              ],
                              "default": "created"
                            },
                            "fieldId": {
                              "type": "string",
                              "format": "uuid",
                              "nullable": true,
                              "default": null
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "asc",
                                "desc"
                              ],
                              "default": "asc"
                            }
                          },
                          "additionalProperties": false
                        },
                        "minItems": 1,
                        "maxItems": 4
                      }
                    ],
                    "default": {}
                  },
                  "columns": {
                    "type": "object",
                    "properties": {
                      "hidden": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "default": []
                      }
                    },
                    "additionalProperties": false,
                    "default": {}
                  }
                },
                "required": [
                  "name",
                  "viewMode",
                  "groupBy"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/views/{id}": {
      "delete": {
        "summary": "DELETE /views/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteViewsById",
        "tags": [
          "views"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /views/:id",
        "description": "Requires the `tickets:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchViewsById",
        "tags": [
          "views"
        ],
        "x-shaire-scope": "tickets:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedView"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "icon": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "pattern": "^\\p{Extended_Pictographic}",
                    "nullable": true
                  },
                  "shared": {
                    "type": "boolean"
                  },
                  "viewMode": {
                    "type": "string",
                    "enum": [
                      "list",
                      "board",
                      "timeline",
                      "calendar"
                    ]
                  },
                  "groupBy": {
                    "type": "string",
                    "enum": [
                      "status",
                      "assignee",
                      "priority",
                      "milestone",
                      "cycle"
                    ]
                  },
                  "filter": {
                    "type": "object",
                    "properties": {
                      "listId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "milestoneId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "cycleId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "statusId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "systemicState": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "open",
                              "in_progress",
                              "done",
                              "canceled"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "open",
                                "in_progress",
                                "done",
                                "canceled"
                              ]
                            }
                          }
                        ]
                      },
                      "assigneeId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "none"
                            ]
                          }
                        ]
                      },
                      "tagId": {
                        "anyOf": [
                          {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "uuid"
                              },
                              {
                                "type": "string",
                                "enum": [
                                  "none"
                                ]
                              }
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "none"
                                  ]
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "tagMatch": {
                        "type": "string",
                        "enum": [
                          "any",
                          "all"
                        ]
                      },
                      "priority": {
                        "type": "string",
                        "enum": [
                          "none",
                          "low",
                          "medium",
                          "high",
                          "urgent"
                        ]
                      },
                      "dueBefore": {
                        "type": "string",
                        "format": "date"
                      },
                      "archived": {
                        "type": "string",
                        "enum": [
                          "only",
                          "with"
                        ]
                      },
                      "fieldId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "fieldValue": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "sort": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "manual",
                              "created",
                              "updated",
                              "title",
                              "milestone",
                              "cycle",
                              "due",
                              "priority",
                              "tag",
                              "field"
                            ],
                            "default": "created"
                          },
                          "fieldId": {
                            "type": "string",
                            "format": "uuid",
                            "nullable": true,
                            "default": null
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "default": "asc"
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "enum": [
                                "manual",
                                "created",
                                "updated",
                                "title",
                                "milestone",
                                "cycle",
                                "due",
                                "priority",
                                "tag",
                                "field"
                              ],
                              "default": "created"
                            },
                            "fieldId": {
                              "type": "string",
                              "format": "uuid",
                              "nullable": true,
                              "default": null
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "asc",
                                "desc"
                              ],
                              "default": "asc"
                            }
                          },
                          "additionalProperties": false
                        },
                        "minItems": 1,
                        "maxItems": 4
                      }
                    ]
                  },
                  "columns": {
                    "type": "object",
                    "properties": {
                      "hidden": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "default": []
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/watchers/{type}/{id}": {
      "delete": {
        "summary": "DELETE /watchers/:type/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteWatchersByTypeById",
        "tags": [
          "watchers"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "get": {
        "summary": "GET /watchers/:type/:id",
        "description": "Requires the `comments:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getWatchersByTypeById",
        "tags": [
          "watchers"
        ],
        "x-shaire-scope": "comments:read",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubjectWatchers"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "put": {
        "summary": "PUT /watchers/:type/:id",
        "description": "Requires the `comments:write` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putWatchersByTypeById",
        "tags": [
          "watchers"
        ],
        "x-shaire-scope": "comments:write",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "watching",
                      "ignored"
                    ]
                  }
                },
                "required": [
                  "state"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces": {
      "get": {
        "summary": "GET /workspaces",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getWorkspaces",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Workspace"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/workspaces/current": {
      "get": {
        "summary": "GET /workspaces/current",
        "description": "Requires the `workspace:read` scope.\n\nStill answers a workspace that is over its plan's seat count.",
        "operationId": "getWorkspacesCurrent",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "x-shaire-allow-while-locked": true,
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /workspaces/current",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchWorkspacesCurrent",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/features": {
      "patch": {
        "summary": "PATCH /workspaces/current/features",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchWorkspacesCurrentFeatures",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "feature": {
                    "type": "string",
                    "enum": [
                      "knowledge",
                      "milestones",
                      "cycles",
                      "boardView",
                      "calendarView",
                      "timelineView",
                      "timeTracking",
                      "customFields",
                      "relations",
                      "reports",
                      "gitIntegration",
                      "intakeForms"
                    ]
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "feature",
                  "enabled"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/members": {
      "get": {
        "summary": "GET /workspaces/current/members",
        "description": "Requires the `workspace:read` scope.\n\nStill answers a workspace that is over its plan's seat count.",
        "operationId": "getWorkspacesCurrentMembers",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "x-shaire-allow-while-locked": true,
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceMember"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/workspaces/current/plan": {
      "get": {
        "summary": "GET /workspaces/current/plan",
        "description": "Requires the `workspace:read` scope.\n\nStill answers a workspace that is over its plan's seat count.",
        "operationId": "getWorkspacesCurrentPlan",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "x-shaire-allow-while-locked": true,
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspacePlan"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/workspaces/current/status-groups": {
      "get": {
        "summary": "GET /workspaces/current/status-groups",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getWorkspacesCurrentStatusGroups",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatusGroupDetail"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "post": {
        "summary": "POST /workspaces/current/status-groups",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postWorkspacesCurrentStatusGroups",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusGroupDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/status-groups/{id}": {
      "delete": {
        "summary": "DELETE /workspaces/current/status-groups/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteWorkspacesCurrentStatusGroupsById",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /workspaces/current/status-groups/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchWorkspacesCurrentStatusGroupsById",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusGroup"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/status-groups/{id}/statuses": {
      "post": {
        "summary": "POST /workspaces/current/status-groups/:id/statuses",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "postWorkspacesCurrentStatusGroupsByIdStatuses",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceStatus"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "systemicState": {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  },
                  "color": {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "systemicState",
                  "color"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/status-groups/{id}/transitions": {
      "put": {
        "summary": "PUT /workspaces/current/status-groups/:id/transitions",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "putWorkspacesCurrentStatusGroupsByIdTransitions",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusGroupDetail"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "denied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "fromStatusId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "toStatusId": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "required": [
                        "fromStatusId",
                        "toStatusId"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 400
                  }
                },
                "required": [
                  "denied"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/statuses": {
      "get": {
        "summary": "GET /workspaces/current/statuses",
        "description": "Requires the `workspace:read` scope.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "getWorkspacesCurrentStatuses",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:read",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceStatus"
                  }
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      }
    },
    "/api/workspaces/current/statuses/{id}": {
      "delete": {
        "summary": "DELETE /workspaces/current/statuses/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "deleteWorkspacesCurrentStatusesById",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        }
      },
      "patch": {
        "summary": "PATCH /workspaces/current/statuses/:id",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchWorkspacesCurrentStatusesById",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceStatus"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "systemicState": {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  },
                  "color": {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  "afterId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "entryGuards": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "noOpenBlockers",
                        "noOpenSubtasks",
                        "assigneeRequired"
                      ]
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/workspaces/current/workflow-override": {
      "patch": {
        "summary": "PATCH /workspaces/current/workflow-override",
        "description": "Requires the `workspace:admin` scope.\n\nThe token's owner must also be a workspace `admin` — a scope is a ceiling, never a promotion.\n\nAnswers `402` while the workspace is over its plan's seat count, for everyone but the owner.",
        "operationId": "patchWorkspacesCurrentWorkflowOverride",
        "tags": [
          "workspaces"
        ],
        "x-shaire-scope": "workspace:admin",
        "x-shaire-role": "admin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "401": {
            "description": "No credential, or one that is unknown, revoked or expired."
          },
          "403": {
            "description": "The token lacks the scope, the caller lacks the permission, or both. The two are asked separately and either can refuse."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "override": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "override"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "A personal access token: `Authorization: Bearer shr_pat_…`.\n\nScopes: `tickets:read`, `tickets:write`, `pages:read`, `pages:write`, `comments:read`, `comments:write`, `time:read`, `time:write`, `search:read`, `reports:read`, `workspace:read`, `workspace:admin`.\n\nRead and write are separate everywhere: a token carrying `tickets:write` cannot\nread tickets unless it also carries `tickets:read`."
      }
    },
    "schemas": {
      "ActivityEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "subjectType": {
            "type": "string",
            "enum": [
              "ticket",
              "milestone",
              "page",
              "workspace"
            ]
          },
          "subjectId": {
            "type": "string",
            "format": "uuid"
          },
          "actorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "type": {
            "type": "string"
          },
          "payload": {
            "type": "object",
            "additionalProperties": {}
          },
          "source": {
            "type": "string",
            "enum": [
              "web",
              "api",
              "mcp",
              "git",
              "job"
            ]
          },
          "occurredAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "subjectType",
          "subjectId",
          "actorId",
          "type",
          "payload",
          "source",
          "occurredAt"
        ],
        "additionalProperties": false
      },
      "ActivityFeedItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "enum": [
              "ticket.created",
              "ticket.status_changed",
              "ticket.assignees_changed",
              "ticket.priority_changed",
              "ticket.due_date_changed",
              "ticket.milestone_changed",
              "ticket.moved"
            ]
          },
          "entity": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ticket",
                  "page",
                  "milestone",
                  "list"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string",
                "nullable": true
              },
              "key": {
                "type": "string",
                "nullable": true
              },
              "listId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "statusId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "icon": {
                "type": "string",
                "nullable": true
              },
              "glyph": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "type",
              "id",
              "title",
              "subtitle",
              "key",
              "listId",
              "statusId",
              "icon",
              "glyph"
            ],
            "additionalProperties": false
          },
          "actor": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false,
            "nullable": true
          },
          "payload": {
            "type": "object",
            "additionalProperties": {}
          },
          "occurredAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "entity",
          "actor",
          "payload",
          "occurredAt"
        ],
        "additionalProperties": false
      },
      "ArchivedCycleCount": {
        "type": "object",
        "properties": {
          "archived": {
            "type": "integer"
          }
        },
        "required": [
          "archived"
        ],
        "additionalProperties": false
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "ownerType": {
            "type": "string",
            "enum": [
              "ticket",
              "page",
              "milestone"
            ]
          },
          "ownerId": {
            "type": "string",
            "format": "uuid"
          },
          "kind": {
            "type": "string",
            "enum": [
              "attachment",
              "inline",
              "cover"
            ]
          },
          "filename": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "byteSize": {
            "type": "integer"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "createdAt": {
            "type": "string"
          },
          "contentUrl": {
            "type": "string"
          },
          "inlineImage": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "ownerType",
          "ownerId",
          "kind",
          "filename",
          "contentType",
          "byteSize",
          "createdBy",
          "createdAt",
          "contentUrl",
          "inlineImage"
        ],
        "additionalProperties": false
      },
      "AuditPage": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": {
                  "type": "string"
                },
                "subjectType": {
                  "type": "string",
                  "enum": [
                    "ticket",
                    "milestone",
                    "page",
                    "workspace"
                  ]
                },
                "subjectId": {
                  "type": "string",
                  "format": "uuid"
                },
                "entity": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "ticket",
                        "page",
                        "milestone",
                        "list"
                      ]
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "title": {
                      "type": "string"
                    },
                    "subtitle": {
                      "type": "string",
                      "nullable": true
                    },
                    "key": {
                      "type": "string",
                      "nullable": true
                    },
                    "listId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "statusId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "icon": {
                      "type": "string",
                      "nullable": true
                    },
                    "glyph": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "type",
                    "id",
                    "title",
                    "subtitle",
                    "key",
                    "listId",
                    "statusId",
                    "icon",
                    "glyph"
                  ],
                  "additionalProperties": false,
                  "nullable": true
                },
                "actor": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "additionalProperties": false,
                  "nullable": true
                },
                "payload": {
                  "type": "object",
                  "additionalProperties": {}
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "web",
                    "api",
                    "mcp",
                    "git",
                    "job"
                  ]
                },
                "occurredAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "type",
                "subjectType",
                "subjectId",
                "entity",
                "actor",
                "payload",
                "source",
                "occurredAt"
              ],
              "additionalProperties": false
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "items",
          "nextCursor"
        ],
        "additionalProperties": false
      },
      "BulkDeleteTicketsResult": {
        "type": "object",
        "properties": {
          "deletedIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "deletedIds"
        ],
        "additionalProperties": false
      },
      "BulkRestoreResult": {
        "type": "object",
        "properties": {
          "restoredIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "restoredIds"
        ],
        "additionalProperties": false
      },
      "BulkTicketsResult": {
        "type": "object",
        "properties": {
          "tickets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "listId": {
                  "type": "string",
                  "format": "uuid"
                },
                "key": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "statusId": {
                  "type": "string",
                  "format": "uuid"
                },
                "priority": {
                  "type": "string",
                  "enum": [
                    "none",
                    "low",
                    "medium",
                    "high",
                    "urgent"
                  ]
                },
                "milestoneId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                },
                "startDate": {
                  "type": "string",
                  "nullable": true
                },
                "dueDate": {
                  "type": "string",
                  "nullable": true
                },
                "estimate": {
                  "type": "number",
                  "nullable": true
                },
                "openBlockers": {
                  "type": "integer"
                },
                "cycleId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                },
                "parentId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                },
                "subtasks": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer"
                    },
                    "done": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "total",
                    "done"
                  ],
                  "additionalProperties": false,
                  "nullable": true
                },
                "position": {
                  "type": "string"
                },
                "assigneeIds": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "tagIds": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "customFields": {
                  "type": "object",
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                },
                "archivedAt": {
                  "type": "string",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "listId",
                "key",
                "title",
                "statusId",
                "priority",
                "milestoneId",
                "startDate",
                "dueDate",
                "estimate",
                "openBlockers",
                "cycleId",
                "parentId",
                "subtasks",
                "position",
                "assigneeIds",
                "tagIds",
                "customFields",
                "archivedAt",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "missingIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "tickets",
          "missingIds"
        ],
        "additionalProperties": false
      },
      "BurndownReport": {
        "type": "object",
        "properties": {
          "startsOn": {
            "type": "string"
          },
          "endsOn": {
            "type": "string"
          },
          "days": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "day": {
                  "type": "string"
                },
                "remaining": {
                  "type": "integer"
                },
                "scope": {
                  "type": "integer"
                },
                "remainingEstimate": {
                  "type": "number",
                  "nullable": true
                },
                "scopeEstimate": {
                  "type": "number",
                  "nullable": true
                }
              },
              "required": [
                "day",
                "remaining",
                "scope",
                "remainingEstimate",
                "scopeEstimate"
              ],
              "additionalProperties": false
            }
          },
          "idealFrom": {
            "type": "integer"
          },
          "idealFromEstimate": {
            "type": "number",
            "nullable": true
          },
          "unestimated": {
            "type": "integer"
          }
        },
        "required": [
          "startsOn",
          "endsOn",
          "days",
          "idealFrom",
          "idealFromEstimate",
          "unestimated"
        ],
        "additionalProperties": false
      },
      "Comment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "subjectType": {
            "type": "string",
            "enum": [
              "ticket",
              "milestone",
              "page"
            ]
          },
          "subjectId": {
            "type": "string",
            "format": "uuid"
          },
          "authorId": {
            "type": "string",
            "format": "uuid"
          },
          "body": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "resolvedAt": {
            "type": "string",
            "nullable": true
          },
          "resolvedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "reactions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "emoji": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                },
                "mine": {
                  "type": "boolean"
                }
              },
              "required": [
                "emoji",
                "count",
                "mine"
              ],
              "additionalProperties": false
            }
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "subjectType",
          "subjectId",
          "authorId",
          "body",
          "parentId",
          "resolvedAt",
          "resolvedBy",
          "reactions",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "CustomField": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "number",
              "date",
              "url",
              "select",
              "user",
              "checkbox"
            ]
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "hue": {
                  "type": "string",
                  "enum": [
                    "red",
                    "orange",
                    "amber",
                    "lime",
                    "green",
                    "teal",
                    "cyan",
                    "blue",
                    "indigo",
                    "violet",
                    "fuchsia",
                    "pink",
                    "brown",
                    "olive",
                    "mauve",
                    "zinc"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "hue"
              ],
              "additionalProperties": false
            }
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "listId",
          "name",
          "type",
          "options",
          "position",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "Cycle": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "startsOn": {
            "type": "string"
          },
          "endsOn": {
            "type": "string"
          },
          "capacity": {
            "type": "number",
            "nullable": true
          },
          "autoRollover": {
            "type": "boolean"
          },
          "cadenceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "folderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "closedAt": {
            "type": "string",
            "nullable": true
          },
          "closedTicketCount": {
            "type": "integer",
            "nullable": true
          },
          "archivedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "number",
          "startsOn",
          "endsOn",
          "capacity",
          "autoRollover",
          "cadenceId",
          "folderId",
          "closedAt",
          "closedTicketCount",
          "archivedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "CycleCadence": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "folderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "nameTemplate": {
            "type": "string"
          },
          "anchorOn": {
            "type": "string"
          },
          "lengthDays": {
            "type": "integer"
          },
          "generateAhead": {
            "type": "integer"
          },
          "numberOffset": {
            "type": "integer"
          },
          "autoRollover": {
            "type": "boolean"
          },
          "emptyCyclesBeforePause": {
            "type": "integer"
          },
          "pausedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "folderId",
          "name",
          "nameTemplate",
          "anchorOn",
          "lengthDays",
          "generateAhead",
          "numberOffset",
          "autoRollover",
          "emptyCyclesBeforePause",
          "pausedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "CycleCadenceDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "folderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "nameTemplate": {
            "type": "string"
          },
          "anchorOn": {
            "type": "string"
          },
          "lengthDays": {
            "type": "integer"
          },
          "generateAhead": {
            "type": "integer"
          },
          "numberOffset": {
            "type": "integer"
          },
          "autoRollover": {
            "type": "boolean"
          },
          "emptyCyclesBeforePause": {
            "type": "integer"
          },
          "pausedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "upcoming": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "integer"
                },
                "number": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "startsOn": {
                  "type": "string"
                },
                "endsOn": {
                  "type": "string"
                }
              },
              "required": [
                "index",
                "number",
                "name",
                "startsOn",
                "endsOn"
              ],
              "additionalProperties": false
            }
          },
          "recentEmptyCycles": {
            "type": "integer"
          },
          "unendedCycleCount": {
            "type": "integer"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "folderId",
          "name",
          "nameTemplate",
          "anchorOn",
          "lengthDays",
          "generateAhead",
          "numberOffset",
          "autoRollover",
          "emptyCyclesBeforePause",
          "pausedAt",
          "createdAt",
          "updatedAt",
          "upcoming",
          "recentEmptyCycles",
          "unendedCycleCount"
        ],
        "additionalProperties": false
      },
      "CycleDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "startsOn": {
            "type": "string"
          },
          "endsOn": {
            "type": "string"
          },
          "capacity": {
            "type": "number",
            "nullable": true
          },
          "autoRollover": {
            "type": "boolean"
          },
          "cadenceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "folderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "closedAt": {
            "type": "string",
            "nullable": true
          },
          "closedTicketCount": {
            "type": "integer",
            "nullable": true
          },
          "archivedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "summary": {
            "type": "object",
            "properties": {
              "cycleId": {
                "type": "string",
                "format": "uuid"
              },
              "total": {
                "type": "integer"
              },
              "bySystemicState": {
                "type": "object",
                "required": [
                  "open",
                  "in_progress",
                  "done",
                  "canceled"
                ],
                "properties": {
                  "open": {
                    "type": "integer"
                  },
                  "in_progress": {
                    "type": "integer"
                  },
                  "done": {
                    "type": "integer"
                  },
                  "canceled": {
                    "type": "integer"
                  }
                },
                "additionalProperties": false
              },
              "overdue": {
                "type": "integer"
              },
              "unassigned": {
                "type": "integer"
              },
              "estimateTotal": {
                "type": "number",
                "nullable": true
              },
              "estimateDone": {
                "type": "number",
                "nullable": true
              },
              "unestimated": {
                "type": "integer"
              },
              "capacity": {
                "type": "number",
                "nullable": true
              }
            },
            "required": [
              "cycleId",
              "total",
              "bySystemicState",
              "overdue",
              "unassigned",
              "estimateTotal",
              "estimateDone",
              "unestimated",
              "capacity"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "number",
          "startsOn",
          "endsOn",
          "capacity",
          "autoRollover",
          "cadenceId",
          "folderId",
          "closedAt",
          "closedTicketCount",
          "archivedAt",
          "createdAt",
          "updatedAt",
          "summary"
        ],
        "additionalProperties": false
      },
      "CycleTimeReport": {
        "type": "object",
        "properties": {
          "since": {
            "type": "string"
          },
          "completed": {
            "type": "integer"
          },
          "medianCycleSeconds": {
            "type": "integer",
            "nullable": true
          },
          "p85CycleSeconds": {
            "type": "integer",
            "nullable": true
          },
          "medianLeadSeconds": {
            "type": "integer",
            "nullable": true
          },
          "p85LeadSeconds": {
            "type": "integer",
            "nullable": true
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "statusId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": "string"
                },
                "systemicState": {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                "groupName": {
                  "type": "string"
                },
                "tickets": {
                  "type": "integer"
                },
                "medianSeconds": {
                  "type": "integer"
                },
                "p85Seconds": {
                  "type": "integer"
                }
              },
              "required": [
                "statusId",
                "name",
                "color",
                "systemicState",
                "groupName",
                "tickets",
                "medianSeconds",
                "p85Seconds"
              ],
              "additionalProperties": false
            }
          },
          "tickets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ticketId": {
                  "type": "string",
                  "format": "uuid"
                },
                "key": {
                  "type": "string"
                },
                "completedAt": {
                  "type": "string"
                },
                "cycleSeconds": {
                  "type": "integer",
                  "nullable": true
                },
                "leadSeconds": {
                  "type": "integer"
                }
              },
              "required": [
                "ticketId",
                "key",
                "completedAt",
                "cycleSeconds",
                "leadSeconds"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "since",
          "completed",
          "medianCycleSeconds",
          "p85CycleSeconds",
          "medianLeadSeconds",
          "p85LeadSeconds",
          "statuses",
          "tickets"
        ],
        "additionalProperties": false
      },
      "DigestPreferences": {
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "enum": [
              "off",
              "daily",
              "weekly"
            ]
          },
          "hour": {
            "type": "integer",
            "minimum": 0,
            "maximum": 23
          },
          "weekday": {
            "type": "integer",
            "minimum": 0,
            "maximum": 6
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "sections": {
            "type": "object",
            "properties": {
              "assigned": {
                "type": "boolean"
              },
              "mentions": {
                "type": "boolean"
              },
              "comments": {
                "type": "boolean"
              },
              "due": {
                "type": "boolean"
              },
              "watching": {
                "type": "boolean"
              }
            },
            "required": [
              "assigned",
              "mentions",
              "comments",
              "due",
              "watching"
            ],
            "additionalProperties": false
          },
          "nextRunAt": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "frequency",
          "hour",
          "weekday",
          "timezone",
          "sections",
          "nextRunAt"
        ],
        "additionalProperties": false
      },
      "EntityLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "linkType": {
            "type": "string",
            "enum": [
              "relates_to",
              "documents",
              "blocks",
              "duplicates",
              "references"
            ]
          },
          "direction": {
            "type": "string",
            "enum": [
              "outbound",
              "inbound"
            ]
          },
          "entity": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ticket",
                  "page",
                  "milestone",
                  "list"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string",
                "nullable": true
              },
              "key": {
                "type": "string",
                "nullable": true
              },
              "listId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "statusId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "icon": {
                "type": "string",
                "nullable": true
              },
              "glyph": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "type",
              "id",
              "title",
              "subtitle",
              "key",
              "listId",
              "statusId",
              "icon",
              "glyph"
            ],
            "additionalProperties": false
          },
          "auto": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "linkType",
          "direction",
          "entity",
          "auto",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "Favourite": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ticket",
                  "page",
                  "milestone",
                  "list"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string",
                "nullable": true
              },
              "key": {
                "type": "string",
                "nullable": true
              },
              "listId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "statusId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "icon": {
                "type": "string",
                "nullable": true
              },
              "glyph": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "type",
              "id",
              "title",
              "subtitle",
              "key",
              "listId",
              "statusId",
              "icon",
              "glyph"
            ],
            "additionalProperties": false
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "entity",
          "position",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "Folder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "statusGroupId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "effectiveStatusGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "tagGroupIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "effectiveTagGroupIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "private": {
            "type": "boolean"
          },
          "protected": {
            "type": "boolean"
          },
          "effectiveProtected": {
            "type": "boolean"
          },
          "glyph": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "parentId",
          "name",
          "path",
          "position",
          "statusGroupId",
          "effectiveStatusGroupId",
          "tagGroupIds",
          "effectiveTagGroupIds",
          "private",
          "protected",
          "effectiveProtected",
          "glyph",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "GitConnection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "provider": {
            "type": "string",
            "enum": [
              "github",
              "gitlab"
            ]
          },
          "accountLogin": {
            "type": "string"
          },
          "webUrl": {
            "type": "string"
          },
          "connectedAt": {
            "type": "string"
          },
          "repositoryCount": {
            "type": "integer"
          }
        },
        "required": [
          "id",
          "provider",
          "accountLogin",
          "webUrl",
          "connectedAt",
          "repositoryCount"
        ],
        "additionalProperties": false
      },
      "GitProvider": {
        "type": "string",
        "enum": [
          "github",
          "gitlab"
        ]
      },
      "GitRemoteRepository": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "defaultBranch": {
            "type": "string"
          },
          "webUrl": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "externalId",
          "fullName",
          "defaultBranch",
          "webUrl",
          "enabled"
        ],
        "additionalProperties": false
      },
      "GitRepository": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "connectionId": {
            "type": "string",
            "format": "uuid"
          },
          "provider": {
            "type": "string",
            "enum": [
              "github",
              "gitlab"
            ]
          },
          "externalId": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "defaultBranch": {
            "type": "string"
          },
          "webUrl": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "connectionId",
          "provider",
          "externalId",
          "fullName",
          "defaultBranch",
          "webUrl"
        ],
        "additionalProperties": false
      },
      "GitTransitionRule": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "enum": [
              "branch_created",
              "pr_opened",
              "pr_ready",
              "pr_merged",
              "pr_closed"
            ]
          },
          "statusId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "required": [
          "event",
          "statusId"
        ],
        "additionalProperties": false
      },
      "Grant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "resourceType": {
            "type": "string",
            "enum": [
              "folder",
              "list"
            ]
          },
          "resourceId": {
            "type": "string",
            "format": "uuid"
          },
          "subjectType": {
            "type": "string",
            "enum": [
              "user",
              "team"
            ]
          },
          "subjectId": {
            "type": "string",
            "format": "uuid"
          },
          "level": {
            "type": "string",
            "enum": [
              "read",
              "comment",
              "edit",
              "full"
            ]
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "resourceType",
          "resourceId",
          "subjectType",
          "subjectId",
          "level",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "IntakeForm": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "heading": {
            "type": "string"
          },
          "intro": {
            "type": "string",
            "nullable": true
          },
          "confirmation": {
            "type": "string",
            "nullable": true
          },
          "detailsLabel": {
            "type": "string",
            "nullable": true
          },
          "collectSubmitter": {
            "type": "boolean"
          },
          "requireSubmitterEmail": {
            "type": "boolean"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fieldId": {
                  "type": "string",
                  "format": "uuid"
                },
                "required": {
                  "type": "boolean"
                },
                "label": {
                  "type": "string",
                  "nullable": true
                },
                "help": {
                  "type": "string",
                  "nullable": true
                },
                "field": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspaceId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "listId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "text",
                        "number",
                        "date",
                        "url",
                        "select",
                        "user",
                        "checkbox"
                      ]
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "name": {
                            "type": "string"
                          },
                          "hue": {
                            "type": "string",
                            "enum": [
                              "red",
                              "orange",
                              "amber",
                              "lime",
                              "green",
                              "teal",
                              "cyan",
                              "blue",
                              "indigo",
                              "violet",
                              "fuchsia",
                              "pink",
                              "brown",
                              "olive",
                              "mauve",
                              "zinc"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "hue"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "position": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "workspaceId",
                    "listId",
                    "name",
                    "type",
                    "options",
                    "position",
                    "createdAt",
                    "updatedAt"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "fieldId",
                "required",
                "label",
                "help",
                "field"
              ],
              "additionalProperties": false
            }
          },
          "defaultStatusId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "defaultPriority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "defaultAssigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "defaultTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "closesAt": {
            "type": "string",
            "nullable": true
          },
          "hasPublicLink": {
            "type": "boolean"
          },
          "dailyLimit": {
            "type": "integer"
          },
          "submissionCount": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "listId",
          "createdBy",
          "name",
          "heading",
          "intro",
          "confirmation",
          "detailsLabel",
          "collectSubmitter",
          "requireSubmitterEmail",
          "fields",
          "defaultStatusId",
          "defaultPriority",
          "defaultAssigneeIds",
          "defaultTagIds",
          "enabled",
          "closesAt",
          "hasPublicLink",
          "dailyLimit",
          "submissionCount",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "IntakeSubmission": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "formId": {
            "type": "string",
            "format": "uuid"
          },
          "formName": {
            "type": "string"
          },
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "submittedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "submitterName": {
            "type": "string",
            "nullable": true
          },
          "submitterEmail": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "formId",
          "formName",
          "ticketId",
          "submittedBy",
          "submitterName",
          "submitterEmail",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "List": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "folderId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "private": {
            "type": "boolean"
          },
          "glyph": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "folderId",
          "name",
          "position",
          "private",
          "glyph",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "ListDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "folderId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "private": {
            "type": "boolean"
          },
          "glyph": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "statusGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "statusGroupId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "systemicState": {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                "color": {
                  "type": "string"
                },
                "position": {
                  "type": "string"
                },
                "deniedFrom": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "entryGuards": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "noOpenBlockers",
                      "noOpenSubtasks",
                      "assigneeRequired"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "workspaceId",
                "statusGroupId",
                "name",
                "systemicState",
                "color",
                "position",
                "deniedFrom",
                "entryGuards"
              ],
              "additionalProperties": false
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "listId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "text",
                    "number",
                    "date",
                    "url",
                    "select",
                    "user",
                    "checkbox"
                  ]
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "name": {
                        "type": "string"
                      },
                      "hue": {
                        "type": "string",
                        "enum": [
                          "red",
                          "orange",
                          "amber",
                          "lime",
                          "green",
                          "teal",
                          "cyan",
                          "blue",
                          "indigo",
                          "violet",
                          "fuchsia",
                          "pink",
                          "brown",
                          "olive",
                          "mauve",
                          "zinc"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "hue"
                    ],
                    "additionalProperties": false
                  }
                },
                "position": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "listId",
                "name",
                "type",
                "options",
                "position",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "hue": {
                  "type": "string",
                  "enum": [
                    "red",
                    "orange",
                    "amber",
                    "lime",
                    "green",
                    "teal",
                    "cyan",
                    "blue",
                    "indigo",
                    "violet",
                    "fuchsia",
                    "pink",
                    "brown",
                    "olive",
                    "mauve",
                    "zinc"
                  ]
                },
                "tagGroupId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "workspaceId",
                "name",
                "hue",
                "tagGroupId"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "workspaceId",
          "folderId",
          "name",
          "position",
          "private",
          "glyph",
          "createdAt",
          "statusGroupId",
          "statuses",
          "customFields",
          "tags"
        ],
        "additionalProperties": false
      },
      "MemberSubmitResponse": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          }
        },
        "required": [
          "ticketId",
          "key"
        ],
        "additionalProperties": false
      },
      "Milestone": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "nullable": true
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "title",
          "description",
          "startDate",
          "endDate",
          "assigneeIds",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "MilestoneDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "nullable": true
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "createdAt": {
            "type": "string"
          },
          "summary": {
            "type": "object",
            "properties": {
              "milestoneId": {
                "type": "string",
                "format": "uuid"
              },
              "total": {
                "type": "integer"
              },
              "bySystemicState": {
                "type": "object",
                "required": [
                  "open",
                  "in_progress",
                  "done",
                  "canceled"
                ],
                "properties": {
                  "open": {
                    "type": "integer"
                  },
                  "in_progress": {
                    "type": "integer"
                  },
                  "done": {
                    "type": "integer"
                  },
                  "canceled": {
                    "type": "integer"
                  }
                },
                "additionalProperties": false
              },
              "overdue": {
                "type": "integer"
              },
              "unassigned": {
                "type": "integer"
              },
              "estimateTotal": {
                "type": "number",
                "nullable": true
              },
              "estimateDone": {
                "type": "number",
                "nullable": true
              },
              "unestimated": {
                "type": "integer"
              }
            },
            "required": [
              "milestoneId",
              "total",
              "bySystemicState",
              "overdue",
              "unassigned",
              "estimateTotal",
              "estimateDone",
              "unestimated"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "workspaceId",
          "title",
          "description",
          "startDate",
          "endDate",
          "assigneeIds",
          "createdAt",
          "summary"
        ],
        "additionalProperties": false
      },
      "MilestoneSummary": {
        "type": "object",
        "properties": {
          "milestoneId": {
            "type": "string",
            "format": "uuid"
          },
          "total": {
            "type": "integer"
          },
          "bySystemicState": {
            "type": "object",
            "required": [
              "open",
              "in_progress",
              "done",
              "canceled"
            ],
            "properties": {
              "open": {
                "type": "integer"
              },
              "in_progress": {
                "type": "integer"
              },
              "done": {
                "type": "integer"
              },
              "canceled": {
                "type": "integer"
              }
            },
            "additionalProperties": false
          },
          "overdue": {
            "type": "integer"
          },
          "unassigned": {
            "type": "integer"
          },
          "estimateTotal": {
            "type": "number",
            "nullable": true
          },
          "estimateDone": {
            "type": "number",
            "nullable": true
          },
          "unestimated": {
            "type": "integer"
          }
        },
        "required": [
          "milestoneId",
          "total",
          "bySystemicState",
          "overdue",
          "unassigned",
          "estimateTotal",
          "estimateDone",
          "unestimated"
        ],
        "additionalProperties": false
      },
      "MyAccess": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member",
              "guest"
            ]
          },
          "unrestricted": {
            "type": "boolean"
          },
          "folders": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "enum": [
                "read",
                "comment",
                "edit",
                "full"
              ]
            }
          },
          "lists": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "enum": [
                "read",
                "comment",
                "edit",
                "full"
              ]
            }
          }
        },
        "required": [
          "role",
          "unrestricted",
          "folders",
          "lists"
        ],
        "additionalProperties": false
      },
      "NotificationPage": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "assigned",
                    "commented",
                    "mentioned"
                  ]
                },
                "entity": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "ticket",
                        "page",
                        "milestone",
                        "list"
                      ]
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "title": {
                      "type": "string"
                    },
                    "subtitle": {
                      "type": "string",
                      "nullable": true
                    },
                    "key": {
                      "type": "string",
                      "nullable": true
                    },
                    "listId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "statusId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "icon": {
                      "type": "string",
                      "nullable": true
                    },
                    "glyph": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "type",
                    "id",
                    "title",
                    "subtitle",
                    "key",
                    "listId",
                    "statusId",
                    "icon",
                    "glyph"
                  ],
                  "additionalProperties": false
                },
                "subjectType": {
                  "type": "string",
                  "enum": [
                    "ticket",
                    "milestone",
                    "page"
                  ]
                },
                "actor": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "additionalProperties": false,
                  "nullable": true
                },
                "payload": {
                  "type": "object",
                  "additionalProperties": {}
                },
                "readAt": {
                  "type": "string",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "type",
                "entity",
                "subjectType",
                "actor",
                "payload",
                "readAt",
                "createdAt"
              ],
              "additionalProperties": false
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "items",
          "nextCursor"
        ],
        "additionalProperties": false
      },
      "Page": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string"
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "cover": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "upload",
                  "preset"
                ]
              },
              "value": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "kind",
              "value",
              "url"
            ],
            "additionalProperties": false,
            "nullable": true
          },
          "path": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "parentId",
          "title",
          "icon",
          "cover",
          "path",
          "position",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "PageDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string"
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "cover": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "upload",
                  "preset"
                ]
              },
              "value": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "kind",
              "value",
              "url"
            ],
            "additionalProperties": false,
            "nullable": true
          },
          "path": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "content": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          }
        },
        "required": [
          "id",
          "workspaceId",
          "parentId",
          "title",
          "icon",
          "cover",
          "path",
          "position",
          "createdAt",
          "updatedAt",
          "content"
        ],
        "additionalProperties": false
      },
      "PageTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string"
          },
          "content": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "icon",
          "title",
          "content",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "PageVersionSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "pageId": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string"
          },
          "author": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false,
            "nullable": true
          }
        },
        "required": [
          "id",
          "pageId",
          "title",
          "capturedAt",
          "author"
        ],
        "additionalProperties": false
      },
      "PublicIntakeLink": {
        "type": "object",
        "properties": {
          "formId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "listName": {
            "type": "string"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "enabled": {
            "type": "boolean"
          },
          "closesAt": {
            "type": "string",
            "nullable": true
          },
          "submissionCount": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "formId",
          "name",
          "listId",
          "listName",
          "createdBy",
          "enabled",
          "closesAt",
          "submissionCount",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "ResourceAccess": {
        "type": "object",
        "properties": {
          "resourceType": {
            "type": "string",
            "enum": [
              "folder",
              "list"
            ]
          },
          "resourceId": {
            "type": "string",
            "format": "uuid"
          },
          "private": {
            "type": "boolean"
          },
          "effectiveLevel": {
            "type": "string",
            "enum": [
              "read",
              "comment",
              "edit",
              "full"
            ]
          },
          "grants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "resourceType": {
                  "type": "string",
                  "enum": [
                    "folder",
                    "list"
                  ]
                },
                "resourceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "subjectType": {
                  "type": "string",
                  "enum": [
                    "user",
                    "team"
                  ]
                },
                "subjectId": {
                  "type": "string",
                  "format": "uuid"
                },
                "level": {
                  "type": "string",
                  "enum": [
                    "read",
                    "comment",
                    "edit",
                    "full"
                  ]
                },
                "createdAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "resourceType",
                "resourceId",
                "subjectType",
                "subjectId",
                "level",
                "createdAt"
              ],
              "additionalProperties": false
            }
          },
          "inherited": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "resourceType": {
                  "type": "string",
                  "enum": [
                    "folder",
                    "list"
                  ]
                },
                "resourceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "subjectType": {
                  "type": "string",
                  "enum": [
                    "user",
                    "team"
                  ]
                },
                "subjectId": {
                  "type": "string",
                  "format": "uuid"
                },
                "level": {
                  "type": "string",
                  "enum": [
                    "read",
                    "comment",
                    "edit",
                    "full"
                  ]
                },
                "createdAt": {
                  "type": "string"
                },
                "fromFolderId": {
                  "type": "string",
                  "format": "uuid"
                },
                "fromName": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "resourceType",
                "resourceId",
                "subjectType",
                "subjectId",
                "level",
                "createdAt",
                "fromFolderId",
                "fromName"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "resourceType",
          "resourceId",
          "private",
          "effectiveLevel",
          "grants",
          "inherited"
        ],
        "additionalProperties": false
      },
      "RunningTimer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "startedAt": {
            "type": "string"
          },
          "endedAt": {
            "type": "string",
            "nullable": true
          },
          "seconds": {
            "type": "integer",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "ticketKey": {
            "type": "string"
          },
          "ticketTitle": {
            "type": "string"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceName": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "ticketId",
          "userId",
          "startedAt",
          "endedAt",
          "seconds",
          "note",
          "createdAt",
          "updatedAt",
          "ticketKey",
          "ticketTitle",
          "listId",
          "workspaceName"
        ],
        "additionalProperties": false
      },
      "SavedView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "ownerId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "icon": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^\\p{Extended_Pictographic}",
            "nullable": true
          },
          "shared": {
            "type": "boolean"
          },
          "viewMode": {
            "type": "string",
            "enum": [
              "list",
              "board",
              "timeline",
              "calendar"
            ]
          },
          "groupBy": {
            "type": "string",
            "enum": [
              "status",
              "assignee",
              "priority",
              "milestone",
              "cycle"
            ]
          },
          "filter": {
            "type": "object",
            "properties": {
              "listId": {
                "type": "string",
                "format": "uuid"
              },
              "milestoneId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "string",
                    "enum": [
                      "none"
                    ]
                  }
                ]
              },
              "cycleId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "string",
                    "enum": [
                      "none"
                    ]
                  }
                ]
              },
              "statusId": {
                "type": "string",
                "format": "uuid"
              },
              "systemicState": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "open",
                      "in_progress",
                      "done",
                      "canceled"
                    ]
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "open",
                        "in_progress",
                        "done",
                        "canceled"
                      ]
                    }
                  }
                ]
              },
              "assigneeId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "string",
                    "enum": [
                      "none"
                    ]
                  }
                ]
              },
              "tagId": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "none"
                        ]
                      }
                    ]
                  },
                  {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uuid"
                        },
                        {
                          "type": "string",
                          "enum": [
                            "none"
                          ]
                        }
                      ]
                    }
                  }
                ]
              },
              "tagMatch": {
                "type": "string",
                "enum": [
                  "any",
                  "all"
                ]
              },
              "priority": {
                "type": "string",
                "enum": [
                  "none",
                  "low",
                  "medium",
                  "high",
                  "urgent"
                ]
              },
              "dueBefore": {
                "type": "string",
                "format": "date"
              },
              "archived": {
                "type": "string",
                "enum": [
                  "only",
                  "with"
                ]
              },
              "fieldId": {
                "type": "string",
                "format": "uuid"
              },
              "fieldValue": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "sort": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "created",
                      "updated",
                      "title",
                      "milestone",
                      "cycle",
                      "due",
                      "priority",
                      "tag",
                      "field"
                    ],
                    "default": "created"
                  },
                  "fieldId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true,
                    "default": null
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "asc",
                      "desc"
                    ],
                    "default": "asc"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "enum": [
                        "manual",
                        "created",
                        "updated",
                        "title",
                        "milestone",
                        "cycle",
                        "due",
                        "priority",
                        "tag",
                        "field"
                      ],
                      "default": "created"
                    },
                    "fieldId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true,
                      "default": null
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "asc",
                        "desc"
                      ],
                      "default": "asc"
                    }
                  },
                  "additionalProperties": false
                },
                "minItems": 1,
                "maxItems": 4
              }
            ]
          },
          "columns": {
            "type": "object",
            "properties": {
              "hidden": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "default": []
              }
            },
            "additionalProperties": false
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "listId",
          "ownerId",
          "name",
          "icon",
          "shared",
          "viewMode",
          "groupBy",
          "filter",
          "sort",
          "columns",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "SearchHit": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ticket",
                  "page",
                  "milestone",
                  "list"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string",
                "nullable": true
              },
              "key": {
                "type": "string",
                "nullable": true
              },
              "listId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "statusId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "icon": {
                "type": "string",
                "nullable": true
              },
              "glyph": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "type",
              "id",
              "title",
              "subtitle",
              "key",
              "listId",
              "statusId",
              "icon",
              "glyph"
            ],
            "additionalProperties": false
          },
          "rank": {
            "type": "number"
          },
          "snippet": {
            "type": "string"
          }
        },
        "required": [
          "entity",
          "rank",
          "snippet"
        ],
        "additionalProperties": false
      },
      "StartTimerResult": {
        "type": "object",
        "properties": {
          "started": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid"
              },
              "ticketId": {
                "type": "string",
                "format": "uuid"
              },
              "userId": {
                "type": "string",
                "format": "uuid"
              },
              "startedAt": {
                "type": "string"
              },
              "endedAt": {
                "type": "string",
                "nullable": true
              },
              "seconds": {
                "type": "integer",
                "nullable": true
              },
              "note": {
                "type": "string",
                "nullable": true
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "ticketKey": {
                "type": "string"
              },
              "ticketTitle": {
                "type": "string"
              },
              "listId": {
                "type": "string",
                "format": "uuid"
              },
              "workspaceName": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "workspaceId",
              "ticketId",
              "userId",
              "startedAt",
              "endedAt",
              "seconds",
              "note",
              "createdAt",
              "updatedAt",
              "ticketKey",
              "ticketTitle",
              "listId",
              "workspaceName"
            ],
            "additionalProperties": false
          },
          "stopped": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid"
              },
              "ticketId": {
                "type": "string",
                "format": "uuid"
              },
              "userId": {
                "type": "string",
                "format": "uuid"
              },
              "startedAt": {
                "type": "string"
              },
              "endedAt": {
                "type": "string",
                "nullable": true
              },
              "seconds": {
                "type": "integer",
                "nullable": true
              },
              "note": {
                "type": "string",
                "nullable": true
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "ticketKey": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "workspaceId",
              "ticketId",
              "userId",
              "startedAt",
              "endedAt",
              "seconds",
              "note",
              "createdAt",
              "updatedAt",
              "ticketKey"
            ],
            "additionalProperties": false,
            "nullable": true
          }
        },
        "required": [
          "started",
          "stopped"
        ],
        "additionalProperties": false
      },
      "StatusGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "position",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "StatusGroupDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "statusGroupId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "systemicState": {
                  "type": "string",
                  "enum": [
                    "open",
                    "in_progress",
                    "done",
                    "canceled"
                  ]
                },
                "color": {
                  "type": "string"
                },
                "position": {
                  "type": "string"
                },
                "deniedFrom": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "entryGuards": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "noOpenBlockers",
                      "noOpenSubtasks",
                      "assigneeRequired"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "workspaceId",
                "statusGroupId",
                "name",
                "systemicState",
                "color",
                "position",
                "deniedFrom",
                "entryGuards"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "position",
          "createdAt",
          "statuses"
        ],
        "additionalProperties": false
      },
      "StoppedTimer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "startedAt": {
            "type": "string"
          },
          "endedAt": {
            "type": "string",
            "nullable": true
          },
          "seconds": {
            "type": "integer",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "ticketKey": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "ticketId",
          "userId",
          "startedAt",
          "endedAt",
          "seconds",
          "note",
          "createdAt",
          "updatedAt",
          "ticketKey"
        ],
        "additionalProperties": false
      },
      "SubjectWatchers": {
        "type": "object",
        "properties": {
          "watchers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid"
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "watching",
                    "ignored"
                  ]
                }
              },
              "required": [
                "userId",
                "state"
              ],
              "additionalProperties": false
            }
          },
          "mine": {
            "type": "string",
            "enum": [
              "watching",
              "ignored"
            ],
            "nullable": true
          }
        },
        "required": [
          "watchers",
          "mine"
        ],
        "additionalProperties": false
      },
      "Tag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "hue": {
            "type": "string",
            "enum": [
              "red",
              "orange",
              "amber",
              "lime",
              "green",
              "teal",
              "cyan",
              "blue",
              "indigo",
              "violet",
              "fuchsia",
              "pink",
              "brown",
              "olive",
              "mauve",
              "zinc"
            ]
          },
          "tagGroupId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "hue",
          "tagGroupId"
        ],
        "additionalProperties": false
      },
      "TagGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "Team": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "memberCount": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "memberCount",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "TeamDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "memberCount": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          },
          "memberIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "memberCount",
          "createdAt",
          "memberIds"
        ],
        "additionalProperties": false
      },
      "ThroughputReport": {
        "type": "object",
        "properties": {
          "since": {
            "type": "string"
          },
          "completed": {
            "type": "integer"
          }
        },
        "required": [
          "since",
          "completed"
        ],
        "additionalProperties": false
      },
      "TicketCounts": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "nullable": true
                },
                "count": {
                  "type": "integer"
                }
              },
              "required": [
                "key",
                "count"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "total",
          "groups"
        ],
        "additionalProperties": false
      },
      "TicketDependency": {
        "type": "object",
        "properties": {
          "blockerId": {
            "type": "string",
            "format": "uuid"
          },
          "blockedId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "blockerId",
          "blockedId"
        ],
        "additionalProperties": false
      },
      "TicketDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "statusId": {
            "type": "string",
            "format": "uuid"
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "milestoneId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "nullable": true
          },
          "estimate": {
            "type": "number",
            "nullable": true
          },
          "openBlockers": {
            "type": "integer"
          },
          "cycleId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "subtasks": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer"
              },
              "done": {
                "type": "integer"
              }
            },
            "required": [
              "total",
              "done"
            ],
            "additionalProperties": false,
            "nullable": true
          },
          "position": {
            "type": "string"
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            }
          },
          "archivedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "description": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          },
          "authorId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "listId",
          "key",
          "title",
          "statusId",
          "priority",
          "milestoneId",
          "startDate",
          "dueDate",
          "estimate",
          "openBlockers",
          "cycleId",
          "parentId",
          "subtasks",
          "position",
          "assigneeIds",
          "tagIds",
          "customFields",
          "archivedAt",
          "createdAt",
          "updatedAt",
          "description",
          "authorId"
        ],
        "additionalProperties": false
      },
      "TicketGitLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "repositoryId": {
            "type": "string",
            "format": "uuid"
          },
          "provider": {
            "type": "string",
            "enum": [
              "github",
              "gitlab"
            ]
          },
          "repositoryFullName": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "branch",
              "pull_request"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "branch",
              "branch_deleted",
              "pr_draft",
              "pr_open",
              "pr_merged",
              "pr_closed"
            ]
          },
          "number": {
            "type": "integer",
            "nullable": true
          },
          "branchName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ticketId",
          "repositoryId",
          "provider",
          "repositoryFullName",
          "kind",
          "state",
          "number",
          "branchName",
          "title",
          "url",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "TicketRecurrence": {
        "type": "object",
        "properties": {
          "cadence": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly"
            ]
          },
          "interval": {
            "type": "integer",
            "minimum": 1,
            "maximum": 52,
            "default": 1
          },
          "weekdays": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 6
            },
            "maxItems": 7,
            "default": []
          },
          "dayOfMonth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 31,
            "nullable": true,
            "default": null
          },
          "hour": {
            "type": "integer",
            "minimum": 0,
            "maximum": 23,
            "default": 9
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "default": "UTC"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "templateId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "dueInDays": {
            "type": "integer",
            "minimum": 0,
            "maximum": 3650,
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "nextRunAt": {
            "type": "string"
          },
          "lastSpawnedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "cadence",
          "id",
          "workspaceId",
          "templateId",
          "listId",
          "createdBy",
          "dueInDays",
          "active",
          "nextRunAt",
          "lastSpawnedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "TicketSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "listId": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "statusId": {
            "type": "string",
            "format": "uuid"
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "milestoneId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "nullable": true
          },
          "estimate": {
            "type": "number",
            "nullable": true
          },
          "openBlockers": {
            "type": "integer"
          },
          "cycleId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "subtasks": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer"
              },
              "done": {
                "type": "integer"
              }
            },
            "required": [
              "total",
              "done"
            ],
            "additionalProperties": false,
            "nullable": true
          },
          "position": {
            "type": "string"
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            }
          },
          "archivedAt": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "listId",
          "key",
          "title",
          "statusId",
          "priority",
          "milestoneId",
          "startDate",
          "dueDate",
          "estimate",
          "openBlockers",
          "cycleId",
          "parentId",
          "subtasks",
          "position",
          "assigneeIds",
          "tagIds",
          "customFields",
          "archivedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "TicketTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "doc"
                ]
              },
              "content": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true,
            "nullable": true
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "estimate": {
            "type": "number",
            "nullable": true
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "icon",
          "title",
          "description",
          "priority",
          "estimate",
          "assigneeIds",
          "tagIds",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "TicketTime": {
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid"
                },
                "ticketId": {
                  "type": "string",
                  "format": "uuid"
                },
                "userId": {
                  "type": "string",
                  "format": "uuid"
                },
                "startedAt": {
                  "type": "string"
                },
                "endedAt": {
                  "type": "string",
                  "nullable": true
                },
                "seconds": {
                  "type": "integer",
                  "nullable": true
                },
                "note": {
                  "type": "string",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "ticketId",
                "userId",
                "startedAt",
                "endedAt",
                "seconds",
                "note",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "totalSeconds": {
            "type": "integer",
            "nullable": true
          },
          "byUser": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid"
                },
                "seconds": {
                  "type": "integer"
                }
              },
              "required": [
                "userId",
                "seconds"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "entries",
          "totalSeconds",
          "byUser"
        ],
        "additionalProperties": false
      },
      "TimeEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "ticketId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "startedAt": {
            "type": "string"
          },
          "endedAt": {
            "type": "string",
            "nullable": true
          },
          "seconds": {
            "type": "integer",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "ticketId",
          "userId",
          "startedAt",
          "endedAt",
          "seconds",
          "note",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "TimeReport": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "totalSeconds": {
            "type": "integer",
            "nullable": true
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid"
                },
                "seconds": {
                  "type": "integer"
                },
                "entries": {
                  "type": "integer"
                }
              },
              "required": [
                "userId",
                "seconds",
                "entries"
              ],
              "additionalProperties": false
            }
          },
          "tickets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ticketId": {
                  "type": "string",
                  "format": "uuid"
                },
                "key": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "seconds": {
                  "type": "integer"
                },
                "estimate": {
                  "type": "number",
                  "nullable": true
                }
              },
              "required": [
                "ticketId",
                "key",
                "title",
                "seconds",
                "estimate"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "from",
          "to",
          "totalSeconds",
          "people",
          "tickets"
        ],
        "additionalProperties": false
      },
      "TrashItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ticket",
              "page",
              "milestone"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "deletedAt": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "childCount": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "type",
          "id",
          "title",
          "subtitle",
          "deletedAt",
          "expiresAt",
          "childCount"
        ],
        "additionalProperties": false
      },
      "UnreadCount": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "count"
        ],
        "additionalProperties": false
      },
      "UserProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "name": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "avatarUrl": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr"
            ]
          },
          "notifyAssignments": {
            "type": "boolean"
          },
          "notifyComments": {
            "type": "boolean"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "name",
          "firstName",
          "lastName",
          "displayName",
          "avatarUrl",
          "language",
          "notifyAssignments",
          "notifyComments",
          "emailVerified",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "VelocityReport": {
        "type": "object",
        "properties": {
          "cycles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cycleId": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "number": {
                  "type": "integer"
                },
                "startsOn": {
                  "type": "string"
                },
                "endsOn": {
                  "type": "string"
                },
                "completed": {
                  "type": "integer"
                },
                "committed": {
                  "type": "integer"
                },
                "completedEstimate": {
                  "type": "number",
                  "nullable": true
                },
                "committedEstimate": {
                  "type": "number",
                  "nullable": true
                },
                "capacity": {
                  "type": "number",
                  "nullable": true
                }
              },
              "required": [
                "cycleId",
                "name",
                "number",
                "startsOn",
                "endsOn",
                "completed",
                "committed",
                "completedEstimate",
                "committedEstimate",
                "capacity"
              ],
              "additionalProperties": false
            }
          },
          "averageCompleted": {
            "type": "number",
            "nullable": true
          },
          "averageCompletedEstimate": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "cycles",
          "averageCompleted",
          "averageCompletedEstimate"
        ],
        "additionalProperties": false
      },
      "WorkloadReport": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                },
                "open": {
                  "type": "integer"
                },
                "inProgress": {
                  "type": "integer"
                },
                "total": {
                  "type": "integer"
                },
                "overdue": {
                  "type": "integer"
                },
                "estimateTotal": {
                  "type": "number",
                  "nullable": true
                },
                "unestimated": {
                  "type": "integer"
                }
              },
              "required": [
                "userId",
                "open",
                "inProgress",
                "total",
                "overdue",
                "estimateTotal",
                "unestimated"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "rows"
        ],
        "additionalProperties": false
      },
      "Workspace": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "ticketPrefix": {
            "type": "string"
          },
          "plan": {
            "type": "string",
            "enum": [
              "starter",
              "team",
              "growth",
              "business"
            ]
          },
          "features": {
            "type": "object",
            "properties": {
              "knowledge": {
                "type": "boolean"
              },
              "milestones": {
                "type": "boolean"
              },
              "cycles": {
                "type": "boolean"
              },
              "boardView": {
                "type": "boolean"
              },
              "calendarView": {
                "type": "boolean"
              },
              "timelineView": {
                "type": "boolean"
              },
              "timeTracking": {
                "type": "boolean"
              },
              "customFields": {
                "type": "boolean"
              },
              "relations": {
                "type": "boolean"
              },
              "reports": {
                "type": "boolean"
              },
              "gitIntegration": {
                "type": "boolean"
              },
              "intakeForms": {
                "type": "boolean"
              }
            },
            "required": [
              "knowledge",
              "milestones",
              "cycles",
              "boardView",
              "calendarView",
              "timelineView",
              "timeTracking",
              "customFields",
              "relations",
              "reports",
              "gitIntegration",
              "intakeForms"
            ],
            "additionalProperties": false
          },
          "workflowOverride": {
            "type": "boolean"
          },
          "iconUrl": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "ticketPrefix",
          "plan",
          "features",
          "workflowOverride",
          "iconUrl",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "WorkspaceMember": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "name": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "avatarUrl": {
            "type": "string",
            "nullable": true
          },
          "emailVerified": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          },
          "joinedAt": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member",
              "guest"
            ]
          }
        },
        "required": [
          "id",
          "email",
          "name",
          "firstName",
          "lastName",
          "displayName",
          "avatarUrl",
          "emailVerified",
          "createdAt",
          "joinedAt",
          "role"
        ],
        "additionalProperties": false
      },
      "WorkspacePlan": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "starter",
              "team",
              "growth",
              "business"
            ]
          },
          "seatLimit": {
            "type": "integer",
            "nullable": true
          },
          "seatsUsed": {
            "type": "integer"
          },
          "billingInterval": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ]
          },
          "storageLimitBytes": {
            "type": "integer",
            "nullable": true
          },
          "storageUsedBytes": {
            "type": "integer"
          },
          "storageStatus": {
            "type": "string",
            "enum": [
              "ok",
              "nearFull",
              "full"
            ]
          },
          "knowledgeLimitBytes": {
            "type": "integer",
            "nullable": true
          },
          "knowledgeUsedBytes": {
            "type": "integer"
          },
          "knowledgeStatus": {
            "type": "string",
            "enum": [
              "ok",
              "nearFull",
              "full"
            ]
          },
          "seatStatus": {
            "type": "string",
            "enum": [
              "ok",
              "overCapacity",
              "locked"
            ]
          }
        },
        "required": [
          "plan",
          "seatLimit",
          "seatsUsed",
          "billingInterval",
          "storageLimitBytes",
          "storageUsedBytes",
          "storageStatus",
          "knowledgeLimitBytes",
          "knowledgeUsedBytes",
          "knowledgeStatus",
          "seatStatus"
        ],
        "additionalProperties": false
      },
      "WorkspaceStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "statusGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "systemicState": {
            "type": "string",
            "enum": [
              "open",
              "in_progress",
              "done",
              "canceled"
            ]
          },
          "color": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "deniedFrom": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "entryGuards": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "noOpenBlockers",
                "noOpenSubtasks",
                "assigneeRequired"
              ]
            }
          }
        },
        "required": [
          "id",
          "workspaceId",
          "statusGroupId",
          "name",
          "systemicState",
          "color",
          "position",
          "deniedFrom",
          "entryGuards"
        ],
        "additionalProperties": false
      }
    }
  }
}
