{
  "components": {
    "parameters": {
      "Cursor": {
        "description": "Opaque cursor returned in meta.page.nextCursor.",
        "in": "query",
        "name": "cursor",
        "schema": {
          "maxLength": 512,
          "type": "string"
        }
      },
      "IdempotencyKey": {
        "description": "Unique request key retained for seven days. Within that window, reuse with different data is rejected.",
        "in": "header",
        "name": "Idempotency-Key",
        "required": true,
        "schema": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        }
      },
      "Limit": {
        "in": "query",
        "name": "limit",
        "schema": {
          "default": 50,
          "maximum": 200,
          "minimum": 1,
          "type": "integer"
        }
      },
      "ResourceId": {
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        }
      }
    },
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The request is invalid."
      },
      "Conflict": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The idempotency key conflicts with an earlier request."
      },
      "Forbidden": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The credential has insufficient scope."
      },
      "NotFound": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The tenant-scoped resource does not exist."
      },
      "RateLimited": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The credential or source exceeded its rate limit."
      },
      "ServiceUnavailable": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "A required cell-local dependency is unavailable."
      },
      "Unauthorized": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        },
        "description": "The bearer credential is missing, invalid, expired, or revoked."
      }
    },
    "schemas": {
      "ApiError": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "source": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "status": {
            "pattern": "^[1-5][0-9]{2}$",
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "code",
          "title",
          "detail"
        ],
        "type": "object"
      },
      "ErrorEnvelope": {
        "additionalProperties": false,
        "properties": {
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "type": "array"
          },
          "meta": {
            "$ref": "#/components/schemas/ResponseMeta"
          }
        },
        "required": [
          "errors",
          "meta"
        ],
        "type": "object"
      },
      "ResponseMeta": {
        "additionalProperties": false,
        "properties": {
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object"
      },
      "Workspace": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "cellId": {
                "type": "string"
              },
              "currency": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "subdomain": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "cellId",
              "currency",
              "name",
              "region",
              "subdomain"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "workspace"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "Project": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "completed": {
                "type": "boolean"
              },
              "contactId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "type": "string"
              },
              "dueAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "individualId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "managerId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": "string"
              },
              "plannedEndAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "plannedStartAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "updatedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "archived",
              "completed",
              "contactId",
              "createdAt",
              "description",
              "dueAt",
              "individualId",
              "managerId",
              "name",
              "plannedEndAt",
              "plannedStartAt",
              "updatedAt"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "project"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "Task": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "assigneeId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "billable": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "completed": {
                "type": "boolean"
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "type": "string"
              },
              "dueAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "groupId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "listId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": "string"
              },
              "plannedEndAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "plannedMinutes": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "plannedStartAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "projectId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "serviceId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "subscriberIds": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "tagIds": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "updatedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "archived",
              "assigneeId",
              "billable",
              "completed",
              "createdAt",
              "description",
              "dueAt",
              "groupId",
              "listId",
              "name",
              "plannedEndAt",
              "plannedMinutes",
              "plannedStartAt",
              "projectId",
              "serviceId",
              "subscriberIds",
              "tagIds",
              "updatedAt"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "task"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "TimeEntry": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "billable": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "billed": {
                "type": "boolean"
              },
              "comment": {
                "type": "string"
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "durationMinutes": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "endAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "serviceId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "startAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "taskId": {
                "type": "string"
              },
              "updatedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "userId": {
                "type": "string"
              }
            },
            "required": [
              "archived",
              "billable",
              "billed",
              "comment",
              "createdAt",
              "durationMinutes",
              "endAt",
              "serviceId",
              "startAt",
              "taskId",
              "updatedAt",
              "userId"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "timeEntry"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "Contact": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "birthday": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "companyTitle": {
                "type": "string"
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "customerId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "emails": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "email",
                    "type"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "firstName": {
                "type": "string"
              },
              "lastName": {
                "type": "string"
              },
              "parentContactId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "phoneNumbers": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "number": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "number",
                    "type"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "type": {
                "enum": [
                  "person",
                  "company"
                ],
                "type": "string"
              },
              "updatedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "archived",
              "birthday",
              "companyTitle",
              "createdAt",
              "customerId",
              "emails",
              "firstName",
              "lastName",
              "parentContactId",
              "phoneNumbers",
              "type",
              "updatedAt"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "contact"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "User": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "disabled": {
                "type": "boolean"
              },
              "displayName": {
                "type": "string"
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "firstName": {
                "type": "string"
              },
              "lastName": {
                "type": "string"
              },
              "roleId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "disabled",
              "displayName",
              "email",
              "firstName",
              "lastName",
              "roleId"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "user"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "ListLookup": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "parentId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "archived",
              "name",
              "parentId",
              "type"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "list"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "ServiceLookup": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "billable": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "billingRate": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              }
            },
            "required": [
              "archived",
              "billable",
              "billingRate",
              "title"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "service"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "TagLookup": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean"
              },
              "color": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "archived",
              "color",
              "name"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "tag"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "Lookup": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ListLookup"
          },
          {
            "$ref": "#/components/schemas/ServiceLookup"
          },
          {
            "$ref": "#/components/schemas/TagLookup"
          }
        ]
      },
      "AuditEvent": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "actorId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "actorType": {
                "enum": [
                  "user",
                  "serviceCredential",
                  "system"
                ],
                "type": "string"
              },
              "cellId": {
                "type": "string"
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "credentialId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "eventType": {
                "type": "string"
              },
              "metadata": {
                "additionalProperties": {
                  "type": [
                    "string",
                    "number",
                    "boolean",
                    "null"
                  ]
                },
                "type": "object"
              },
              "outcome": {
                "enum": [
                  "success",
                  "denied",
                  "failure"
                ],
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "requestId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "source": {
                "enum": [
                  "teamgrid-app",
                  "api-v1",
                  "system"
                ],
                "type": "string"
              },
              "targetId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "targetType": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "actorId",
              "actorType",
              "cellId",
              "createdAt",
              "credentialId",
              "eventType",
              "metadata",
              "outcome",
              "region",
              "requestId",
              "source",
              "targetId",
              "targetType"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "auditEvent"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "Webhook": {
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "actions": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "disabled": {
                "type": "boolean"
              },
              "failCount": {
                "minimum": 0,
                "type": "integer"
              },
              "lastStatus": {
                "maximum": 599,
                "minimum": 100,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "signingSecret": {
                "description": "Returned only by an idempotent webhook create response.",
                "pattern": "^whsec_v2_[A-Za-z0-9_-]{43}$",
                "readOnly": true,
                "type": "string"
              },
              "url": {
                "format": "uri",
                "type": "string"
              },
              "version": {
                "enum": [
                  1,
                  2
                ],
                "type": "integer"
              }
            },
            "required": [
              "actions",
              "disabled",
              "failCount",
              "lastStatus",
              "url",
              "version"
            ],
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "const": "webhook"
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object"
      },
      "WebhookCreate": {
        "additionalProperties": false,
        "properties": {
          "actions": {
            "items": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "url": {
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          }
        },
        "required": [
          "actions",
          "url"
        ],
        "type": "object"
      },
      "TaskCreate": {
        "additionalProperties": false,
        "not": {
          "properties": {
            "assigneeId": {
              "type": "string"
            },
            "groupId": {
              "type": "string"
            }
          },
          "required": [
            "assigneeId",
            "groupId"
          ]
        },
        "properties": {
          "assigneeId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "billable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "completed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "description": {
            "maxLength": 50000,
            "type": [
              "string",
              "null"
            ]
          },
          "dueAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "groupId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "listId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          },
          "plannedEndAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "plannedMinutes": {
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "plannedStartAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "projectId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "serviceId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "subscriberIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ]
          },
          "tagIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TaskUpdate": {
        "additionalProperties": false,
        "minProperties": 1,
        "not": {
          "properties": {
            "assigneeId": {
              "type": "string"
            },
            "groupId": {
              "type": "string"
            }
          },
          "required": [
            "assigneeId",
            "groupId"
          ]
        },
        "properties": {
          "assigneeId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "billable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "completed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "description": {
            "maxLength": 50000,
            "type": [
              "string",
              "null"
            ]
          },
          "dueAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "groupId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "listId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "maxLength": 500,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "plannedEndAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "plannedMinutes": {
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "plannedStartAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "projectId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "serviceId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "subscriberIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ]
          },
          "tagIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "TimeEntryCreate": {
        "additionalProperties": false,
        "properties": {
          "billable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "comment": {
            "maxLength": 10000,
            "type": [
              "string",
              "null"
            ]
          },
          "endAt": {
            "format": "date-time",
            "type": "string"
          },
          "serviceId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "startAt": {
            "format": "date-time",
            "type": "string"
          },
          "taskId": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "userId": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "userId",
          "startAt",
          "endAt"
        ],
        "type": "object"
      },
      "TimeEntryUpdate": {
        "additionalProperties": false,
        "minProperties": 1,
        "properties": {
          "billable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "comment": {
            "maxLength": 10000,
            "type": [
              "string",
              "null"
            ]
          },
          "endAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "serviceId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "startAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "bearerFormat": "tg_sk_v1",
        "description": "Reveal-once cell-bound TeamGrid service credential.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Stable, cell-aware TeamGrid API for service credentials and the TeamGrid CLI.",
    "title": "TeamGrid API v1",
    "version": "1.0.0"
  },
  "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "openapi": "3.1.0",
  "paths": {
    "/": {
      "get": {
        "operationId": "getApiVersion",
        "responses": {
          "200": {
            "description": "API version discovery."
          }
        },
        "security": [],
        "summary": "Discover API v1",
        "tags": [
          "System"
        ]
      }
    },
    "/workspace": {
      "get": {
        "operationId": "getWorkspace",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Workspace"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "workspace:read"
            ]
          }
        ],
        "summary": "Get the authenticated workspace",
        "tags": [
          "Workspace"
        ]
      }
    },
    "/projects": {
      "get": {
        "operationId": "listProjects",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Filter by completion status.",
            "in": "query",
            "name": "completed",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Project"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "projects:read"
            ]
          }
        ],
        "summary": "List projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{id}": {
      "get": {
        "operationId": "getProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Project"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "projects:read"
            ]
          }
        ],
        "summary": "Get a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/tasks": {
      "get": {
        "operationId": "listTasks",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Filter by assigned user id.",
            "in": "query",
            "name": "assigneeId",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          },
          {
            "description": "Filter by completion status.",
            "in": "query",
            "name": "completed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by project id.",
            "in": "query",
            "name": "projectId",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Task"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List tasks",
        "tags": [
          "Tasks"
        ]
      },
      "post": {
        "operationId": "createTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Task"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "An idempotent replay of an existing resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "true"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Task"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A newly created resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "false"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Create a task",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/tasks/{id}": {
      "delete": {
        "operationId": "archiveTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was archived."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Archive a task",
        "tags": [
          "Tasks"
        ]
      },
      "get": {
        "operationId": "getTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Task"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:read"
            ]
          }
        ],
        "summary": "Get a task",
        "tags": [
          "Tasks"
        ]
      },
      "patch": {
        "operationId": "updateTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Task"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The updated resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Update a task",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/time-entries": {
      "get": {
        "operationId": "listTimeEntries",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Include entries starting at or after this time.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Include entries starting at or before this time.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter by task id.",
            "in": "query",
            "name": "taskId",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          },
          {
            "description": "Filter by user id.",
            "in": "query",
            "name": "userId",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/TimeEntry"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "time-entries:read"
            ]
          }
        ],
        "summary": "List time entries",
        "tags": [
          "Time Entries"
        ]
      },
      "post": {
        "operationId": "createTimeEntry",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeEntryCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TimeEntry"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "An idempotent replay of an existing resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "true"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TimeEntry"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A newly created resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "false"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "time-entries:write"
            ]
          }
        ],
        "summary": "Create a time entry",
        "tags": [
          "Time Entries"
        ]
      }
    },
    "/time-entries/{id}": {
      "delete": {
        "operationId": "archiveTimeEntry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was archived."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "time-entries:write"
            ]
          }
        ],
        "summary": "Archive a time entry",
        "tags": [
          "Time Entries"
        ]
      },
      "get": {
        "operationId": "getTimeEntry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TimeEntry"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "time-entries:read"
            ]
          }
        ],
        "summary": "Get a time entry",
        "tags": [
          "Time Entries"
        ]
      },
      "patch": {
        "operationId": "updateTimeEntry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeEntryUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TimeEntry"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The updated resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "time-entries:write"
            ]
          }
        ],
        "summary": "Update a time entry",
        "tags": [
          "Time Entries"
        ]
      }
    },
    "/contacts": {
      "get": {
        "operationId": "listContacts",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Filter by contact type.",
            "in": "query",
            "name": "type",
            "schema": {
              "enum": [
                "person",
                "company"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Contact"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "contacts:read"
            ]
          }
        ],
        "summary": "List contacts",
        "tags": [
          "Contacts"
        ]
      }
    },
    "/contacts/{id}": {
      "get": {
        "operationId": "getContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Contact"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "contacts:read"
            ]
          }
        ],
        "summary": "Get a contact",
        "tags": [
          "Contacts"
        ]
      }
    },
    "/users": {
      "get": {
        "operationId": "listUsers",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/User"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "users:read"
            ]
          }
        ],
        "summary": "List workspace users",
        "tags": [
          "Users"
        ]
      }
    },
    "/lists": {
      "get": {
        "operationId": "listLists",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Filter by task-list type.",
            "in": "query",
            "name": "type",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Lookup"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List task lists",
        "tags": [
          "Task Metadata"
        ]
      }
    },
    "/services": {
      "get": {
        "operationId": "listServices",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Lookup"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List services",
        "tags": [
          "Task Metadata"
        ]
      }
    },
    "/tags": {
      "get": {
        "operationId": "listTags",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Return archived resources instead of active resources.",
            "in": "query",
            "name": "archived",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Lookup"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List tags",
        "tags": [
          "Task Metadata"
        ]
      }
    },
    "/audit-events": {
      "get": {
        "operationId": "listAuditEvents",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "description": "Filter by credential id.",
            "in": "query",
            "name": "credentialId",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          },
          {
            "description": "Filter by audit event type.",
            "in": "query",
            "name": "eventType",
            "schema": {
              "maxLength": 128,
              "type": "string"
            }
          },
          {
            "description": "Filter by audit outcome.",
            "in": "query",
            "name": "outcome",
            "schema": {
              "enum": [
                "success",
                "denied",
                "failure"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/AuditEvent"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "audit:read"
            ]
          }
        ],
        "summary": "List developer audit events",
        "tags": [
          "Audit"
        ]
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "listWebhooks",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Webhook"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ResponseMeta"
                        },
                        {
                          "properties": {
                            "page": {
                              "additionalProperties": false,
                              "properties": {
                                "limit": {
                                  "maximum": 200,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "nextCursor": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "limit",
                                "nextCursor"
                              ],
                              "type": "object"
                            }
                          },
                          "required": [
                            "page"
                          ],
                          "type": "object"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A stable cursor page."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "webhooks:read"
            ]
          }
        ],
        "summary": "List webhooks",
        "tags": [
          "Webhooks"
        ]
      },
      "post": {
        "operationId": "createWebhook",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "An idempotent replay of an existing resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "true"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "A newly created resource.",
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "enum": [
                    "false"
                  ],
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "webhooks:write"
            ]
          }
        ],
        "summary": "Create a webhook",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/webhooks/{id}": {
      "delete": {
        "operationId": "removeWebhook",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "204": {
            "description": "The webhook was removed."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "webhooks:write"
            ]
          }
        ],
        "summary": "Remove a webhook",
        "tags": [
          "Webhooks"
        ]
      },
      "get": {
        "operationId": "getWebhook",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/ResponseMeta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "The requested resource."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "webhooks:read"
            ]
          }
        ],
        "summary": "Get a webhook",
        "tags": [
          "Webhooks"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "German region",
      "url": "https://api.de.teamgrid.app/v1"
    },
    {
      "description": "United States region",
      "url": "https://api.us.teamgrid.app/v1"
    },
    {
      "description": "Future global compatibility ingress",
      "url": "https://api.teamgrid.app/v1"
    }
  ],
  "tags": [
    {
      "name": "System"
    },
    {
      "name": "Workspace"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "Time Entries"
    },
    {
      "name": "Contacts"
    },
    {
      "name": "Users"
    },
    {
      "name": "Task Metadata"
    },
    {
      "name": "Audit"
    },
    {
      "name": "Webhooks"
    }
  ]
}
