{
  "openapi": "3.0.1",
  "info": {
    "title": "Teamhood API v1",
    "description": "Note: Teamhood API is limited to 100 requests per minute",
    "version": "v1"
  },
  "paths": {
    "/api/v1/attachments/{id}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Retrieves attachment metadata by unique identifier.\r\nSupports both uploaded files and external source attachments.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the attachment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Attachment"
                }
              }
            }
          },
          "404": {
            "description": "The specified attachment could not be found."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      },
      "put": {
        "tags": [
          "Attachments"
        ],
        "summary": "Updates attachment metadata and content by unique identifier.\r\nOnly supports directly uploaded files, not external source attachments.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the attachment to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "Name": {
                    "type": "string",
                    "description": "The unique identifier of the item.",
                    "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
                  },
                  "Content": {
                    "type": "string",
                    "description": "The file content of the attachment.",
                    "format": "binary"
                  },
                  "RequestId": {
                    "type": "string",
                    "description": "Idempotency key",
                    "format": "uuid"
                  }
                }
              },
              "encoding": {
                "Name": {
                  "style": "form"
                },
                "Content": {
                  "style": "form"
                },
                "RequestId": {
                  "style": "form"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "Name": {
                    "type": "string",
                    "description": "The unique identifier of the item.",
                    "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
                  },
                  "Content": {
                    "type": "string",
                    "description": "The file content of the attachment.",
                    "format": "binary"
                  },
                  "RequestId": {
                    "type": "string",
                    "description": "Idempotency key",
                    "format": "uuid"
                  }
                }
              },
              "encoding": {
                "Name": {
                  "style": "form"
                },
                "Content": {
                  "style": "form"
                },
                "RequestId": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Attachment"
                }
              }
            }
          },
          "404": {
            "description": "The specified attachment could not be found."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      },
      "delete": {
        "tags": [
          "Attachments"
        ],
        "summary": "Deletes an attachment by unique identifier.\r\nSupports both uploaded files and external source attachments.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the attachment to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "The specified attachment could not be found."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      }
    },
    "/api/v1/attachments/{id}/content": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Downloads attachment file content by unique identifier.\r\nOnly supports directly uploaded files, not external source attachments.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the attachment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The file content was successfully retrieved."
          },
          "404": {
            "description": "The specified attachment could not be found."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      }
    },
    "/api/v1/attachments": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "summary": "Adds a new attachment to the specified item.\r\nSupports direct file uploads only; external source attachments are not supported.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "ItemId": {
                    "type": "string",
                    "description": "The unique identifier of the item.",
                    "format": "uuid",
                    "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
                  },
                  "Name": {
                    "type": "string",
                    "description": "The name of the attachment.",
                    "example": "Document.pdf"
                  },
                  "Content": {
                    "type": "string",
                    "description": "The file content of the attachment.",
                    "format": "binary"
                  },
                  "RequestId": {
                    "type": "string",
                    "description": "Idempotency key",
                    "format": "uuid"
                  }
                }
              },
              "encoding": {
                "ItemId": {
                  "style": "form"
                },
                "Name": {
                  "style": "form"
                },
                "Content": {
                  "style": "form"
                },
                "RequestId": {
                  "style": "form"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ItemId": {
                    "type": "string",
                    "description": "The unique identifier of the item.",
                    "format": "uuid",
                    "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
                  },
                  "Name": {
                    "type": "string",
                    "description": "The name of the attachment.",
                    "example": "Document.pdf"
                  },
                  "Content": {
                    "type": "string",
                    "description": "The file content of the attachment.",
                    "format": "binary"
                  },
                  "RequestId": {
                    "type": "string",
                    "description": "Idempotency key",
                    "format": "uuid"
                  }
                }
              },
              "encoding": {
                "ItemId": {
                  "style": "form"
                },
                "Name": {
                  "style": "form"
                },
                "Content": {
                  "style": "form"
                },
                "RequestId": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Attachment"
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid. Ensure all required fields are included and valid."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      }
    },
    "/api/v1/boards/{boardId}/rows": {
      "get": {
        "tags": [
          "Boards"
        ],
        "summary": "List Rows by Board Id",
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetBoardRowsResponse"
                },
                "example": {"rows":[{"id":"00ec9e14-239a-42c7-ba8d-b55bc56b0d01","title":"Row title","index":0}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/boards/{boardId}/statuses": {
      "get": {
        "tags": [
          "Boards"
        ],
        "summary": "List Statuses by Board Id",
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetStatusesForBoardResponse"
                },
                "example": {"statuses":[{"id":"dd6723b2-7986-4a1e-86d7-7c52ed4e4d70","title":"State title","type":"InProgress","index":0}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/boards": {
      "post": {
        "tags": [
          "Boards"
        ],
        "summary": "Create new Board",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddBoardRequest"
              },
              "example": {"title":"Very important board","displayId":"DISPLAY_ID","viewType":"Kanban","templateId":"967c77b8-3a0c-4281-a3fe-c8176f840f10","workspaceId":"2fd6515b-67cd-4e6f-aad4-1a8d3855a36c"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Board"
                },
                "example": {"id":"0383d5ba-141e-49a9-b98a-5465d2bf326e","displayId":"BRD1","title":"Board title"}
              }
            }
          }
        }
      }
    },
    "/api/v1/boards/{boardId}/item-activities": {
      "post": {
        "tags": [
          "Item Activities"
        ],
        "summary": "Get item activities for a specific board within a time range",
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "Board identifier",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Item activities query parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.GetItemActivitiesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetItemActivitiesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/items/{itemId}": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Get Item by id",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Item"
                },
                "example": {"id":"518fb18d-2d74-4d51-a770-b1514a9898de","displayId":"ABCD-1234","workspaceId":"12a143a7-b2e7-4bee-a7ee-d418690fbfaf","boardId":"9f8b815b-8e04-4605-a377-c70e4f8dc7f5","rowId":"900cc892-945f-48f5-b7a1-0b1622d60a57","title":"Very important item","statusId":"e89b0513-8bd2-4b25-8d21-ac8ddc7f5d7a","ownerId":"66a87fc9-ef48-4986-a4eb-3692cc9eaa67","assignedUserId":"aea26766-568f-497c-bd66-40cf766e8c76","color":1,"startDate":"2026-08-30T19:48:09.9920473Z","dueDate":"2026-08-31T19:48:09.9920473Z","isScheduleLocked":false,"completedOn":"2026-08-31T07:48:09.9920474Z","description":"Description of very important item","budget":10,"estimation":10,"estimationType":"Hours","completed":false,"archived":false,"modifiedDate":"2026-08-29T19:48:09.9920472Z","createdDate":"0001-01-01T00:00:00Z","totalLoggedTime":0,"milestone":false,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"8ac3196f-c5f2-444a-b6b0-a22add9160de","tags":["Tag1","Tag2"],"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"relations":{"children":["377777d9-f40a-4496-bae3-a1bebce87798"],"waiting":["47b211a7-afa4-46d5-a35a-9232474aaa66","3cd020ce-76f1-4cd0-917e-c4a20400c192"],"blocking":["bfcca14d-e1e4-4d8f-9191-245db1903303"],"syncCopies":["bb5b605f-c871-4e2a-97b6-f15153554a45"],"waitingDependencyDirections":[{"itemId":"be66594a-c8ed-4ac0-b787-dc5a14a0c913","direction":"FinishToStart"}],"blockingDependencyDirections":[{"itemId":"bc060b21-6413-4b5d-aeca-c579eccd224d","direction":"StartToFinish"}]},"aggregates":{"budget":{"value":55.5},"estimation":{"value":7},"totalLoggedTime":{"value":3600}},"url":"https://company.teamhood.com/EXMPL/Board/EXMPL/ABCD-1234","hasAttachments":false,"sortOrder":1024,"parentRelativeSortOrder":1024,"baselines":[{"startDate":"2026-08-20T19:48:09.9920523Z","dueDate":"2026-09-04T19:48:09.9920524Z","estimation":8,"budget":500,"duration":10}]}
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Items"
        ],
        "summary": "Update Item",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.UpdateItemRequest"
              },
              "example": {"data":{"title":"Updated item title","description":"Updated item description","completed":"false","estimation":10,"budget":5000.5,"startDate":"2026-08-30T19:48:09.9922844Z","dueDate":"2026-08-31T19:48:09.9922847Z","color":1,"userId":"3591253f-6b3f-401c-9b46-512f22ca626b","statusId":"4f2d57e9-ed4e-4b28-aea4-1745f481c0f6","rowId":"1eaf92de-9a9d-48b1-a841-3a6e4b204f41","boardId":"86409a63-5a63-4c56-a048-cbdcf3eb3105","parentId":"36ddf8b8-a8ec-4bf5-b035-eefb0364a18e","milestone":false,"progress":0,"archived":true,"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"tags":["Issue","High priority"],"blocking":[{"itemId":"ec7a8dc8-ece3-4029-810f-09705f6e220d","direction":"FinishToStart"},{"itemId":"a614925f-9f8d-4ab2-a15d-bcd9eb59cc60","direction":"FinishToFinish"},{"itemId":"fbbaf0fa-a8aa-44e2-99e0-718453f38cdf","direction":"StartToStart"},{"itemId":"76bb16d8-f9ff-4ce3-8250-cce67ee3e90a","direction":"StartToFinish"}],"waiting":[{"itemId":"b75c7fb2-0d06-4a14-b7ad-9e6f13ad760e","direction":"FinishToStart"},{"itemId":"2328137f-97ef-4cd6-9136-20daffeb99b7","direction":"FinishToFinish"},{"itemId":"9e026263-d27c-478d-a0c6-6e2060a32d35","direction":"StartToStart"},{"itemId":"b3eb16a1-533a-408d-90e9-b179d42f36ff","direction":"StartToFinish"}]}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Item"
                },
                "example": {"id":"bda88672-cef8-4dd6-91cc-b124db757f44","displayId":"ABCD-1234","workspaceId":"5d3c66bc-520c-46c2-8072-2d1801c40fdf","boardId":"9a479c4b-49f6-4bc5-9778-36e41f586713","rowId":"f822cf7f-edbf-4088-94f2-d2f9cc319c6d","title":"Very important item","statusId":"ca5c5a62-57ac-484e-8f7c-fab637197bbb","ownerId":"a2d10814-55df-488e-80a7-65962821c9b4","assignedUserId":"44b2fa05-15e7-4f9d-adcb-08c77dbd291d","color":1,"startDate":"2026-08-30T19:48:09.9924778Z","dueDate":"2026-08-31T19:48:09.9924778Z","isScheduleLocked":false,"completedOn":"2026-08-31T07:48:09.9924779Z","description":"Description of very important item","budget":10,"estimation":10,"estimationType":"Hours","completed":false,"archived":false,"modifiedDate":"2026-08-29T19:48:09.9924778Z","createdDate":"0001-01-01T00:00:00Z","totalLoggedTime":0,"milestone":false,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"82a9a07e-cbb5-4653-9343-9a25c1d94a0f","tags":["Tag1","Tag2"],"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"relations":{"children":["dc138504-9cad-4757-84b9-53d605385574"],"waiting":["62e91987-947c-485e-ad28-74f56b04245e","15527641-0af4-46c4-b30c-7727bf8b098e"],"blocking":["1a7ecd33-684d-4655-a9bf-c35a64a88a6b"],"syncCopies":["aae06547-3b8a-49ae-b89a-a7e49a144af5"],"waitingDependencyDirections":[{"itemId":"43145fae-0cd3-4e4a-9ce3-d404fa51d2d4","direction":"FinishToStart"}],"blockingDependencyDirections":[{"itemId":"0537dcc7-7278-4182-87cc-9fc99053dd8d","direction":"StartToFinish"}]},"aggregates":{"budget":{"value":55.5},"estimation":{"value":7},"totalLoggedTime":{"value":3600}},"url":"https://company.teamhood.com/EXMPL/Board/EXMPL/ABCD-1234","hasAttachments":false,"sortOrder":1024,"parentRelativeSortOrder":1024,"baselines":[{"startDate":"2026-08-20T19:48:09.9924809Z","dueDate":"2026-09-04T19:48:09.9924809Z","estimation":8,"budget":500,"duration":10}]}
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Items"
        ],
        "summary": "Delete Item",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/items": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Query items",
        "description": "The returned item includes:\r\n- `parentRelativeSortOrder`: Only populated for child items. Used to order children within their parent's hierarchy.\r\n- `relations.children`: Child item IDs ordered by order within the parent's hierarchy.",
        "parameters": [
          {
            "name": "Completed",
            "in": "query",
            "description": "Returns only Completed items if set to True. Default behavior - returns all items",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AssignedUserId",
            "in": "query",
            "description": "Filter by assigned user",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OwnerId",
            "in": "query",
            "description": "Filter by item owner (creator)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "StatusId",
            "in": "query",
            "description": "Filter by status",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "RowId",
            "in": "query",
            "description": "Filter by row",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BoardId",
            "in": "query",
            "description": "Filter by board",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "WorkspaceId",
            "in": "query",
            "description": "Filter by workspace",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ParentId",
            "in": "query",
            "description": "Filter by parent item",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CustomFields",
            "in": "query",
            "description": "Filter by custom fields joined with OR operator, exmaple: \"Custom project\"=\"Cars\"\r\nMultiple custom fields: https://{TENANT_URL}/api/v1/items?workspaceId={WORKSPACE_ID}&customFields=\"Custom project\"=\"Cars\"&customFields=\"Area\"=\"Engines\"",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "CreatedSince",
            "in": "query",
            "description": "Returns items created since specified date in UTC timezone (ISO format, in example 2024-02-05T02:00:00)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedSince",
            "in": "query",
            "description": "Returns items modified since specified date UTC timezone (ISO format, in example 2024-02-05T02:00:00)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CompletedSince",
            "in": "query",
            "description": "Returns items completed since specified date UTC timezone (ISO format, in example 2024-02-05T02:00:00)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Tags",
            "in": "query",
            "description": "Filter by tags joined with OR operator\r\nMultiple tags: https://{TENANT_URL}/api/v1/items?workspaceId={WORKSPACE_ID}&tags=TAG1&tags=TAG2&tags=TAG3",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "IncludeChildItems",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "How many records to skip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Take",
            "in": "query",
            "description": "How many records to take",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetItemsResponse"
                },
                "example": {"items":[{"id":"ec8e187b-563c-4144-8b49-1d6b072fa86b","displayId":"ABCD-1234","workspaceId":"d1c0f5e5-338c-4a33-8090-10b8ffc03216","boardId":"f0297447-3be5-447f-9df9-5f9bd1dbc435","rowId":"fc29e670-028c-40f8-a6e1-29d93ddf9c7c","title":"Very important item","statusId":"6235e042-75e4-40b6-8ee1-cf24ef4f7488","ownerId":"3630e6de-5eb0-4940-9fa0-c845467a50f5","assignedUserId":"32c7fb5d-a2a0-401c-a397-a3c9230f6b63","color":1,"startDate":"2026-08-30T19:48:09.9928361Z","dueDate":"2026-08-31T19:48:09.9928362Z","isScheduleLocked":false,"completedOn":"2026-08-31T07:48:09.9928362Z","description":"Description of very important item","budget":10,"estimation":10,"estimationType":"Hours","completed":false,"archived":false,"modifiedDate":"2026-08-29T19:48:09.9928361Z","createdDate":"0001-01-01T00:00:00Z","totalLoggedTime":0,"milestone":false,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"0cbbc742-046b-434c-947d-5c992e205c25","tags":["Tag1","Tag2"],"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"relations":{"children":["5bf22a7b-3e9d-4a2d-985a-db1f89355e68"],"waiting":["74893723-c916-491f-9265-238a4e17a680","d7818d58-2f32-4b23-81ce-8b44258b35a1"],"blocking":["ab2325f8-b2b4-42a4-b1da-8e63574d3fb4"],"syncCopies":["58a7c65a-10f7-4458-a279-d21fbb9d5efe"],"waitingDependencyDirections":[{"itemId":"98b5a687-1207-4d95-9e14-fcf2f72ad8ed","direction":"FinishToStart"}],"blockingDependencyDirections":[{"itemId":"21cefa37-f745-4053-99f5-29ac23f9c14f","direction":"StartToFinish"}]},"aggregates":{"budget":{"value":55.5},"estimation":{"value":7},"totalLoggedTime":{"value":3600}},"url":"https://company.teamhood.com/EXMPL/Board/EXMPL/ABCD-1234","hasAttachments":false,"sortOrder":1024,"parentRelativeSortOrder":1024,"baselines":[{"startDate":"2026-08-20T19:48:09.9928398Z","dueDate":"2026-09-04T19:48:09.9928398Z","estimation":8,"budget":500,"duration":10}]}],"nextPageUrl":"https://tenant-name.teamhood.com/api/v1/items?WorkspaceId=d1c0f5e5-338c-4a33-8090-10b8ffc03216?Skip=5&Take=5"}
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Create new Item",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddItemRequest"
              },
              "example": {"title":"Very important item","boardId":"eb5bd1f0-a40d-489d-ab9e-df1133b40eb4","assignedUserId":"a9d1b326-6642-4328-8d4b-3fc691406310","ownerId":"52febae8-3f15-4641-9cab-081b75afa42d","rowId":"0762a118-2285-4cc3-9336-1e54b141ec80","statusId":"33475aa7-ff31-4d88-8332-0201a4a2b00a","startDate":"2026-08-30T19:48:09.9931297Z","dueDate":"2026-08-31T19:48:09.9931302Z","color":1,"description":"Desrcription of very important item","budget":10,"estimation":10,"completed":false,"workspaceId":"bbf14cdc-9060-41fc-9620-5355f8787b27","milestone":false,"progress":50,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"f675d05d-eb5b-47ae-8bca-a14bd9304e26","customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"tags":["Issue","High priority"],"blocking":[{"itemId":"2f2d61c0-25b7-4343-9b37-3c55ba336844","direction":"FinishToStart"},{"itemId":"148923f9-8fd7-49ff-b87d-d5891d219221","direction":"FinishToFinish"},{"itemId":"dbd56066-e3b6-4883-a50a-4ed9bbb4b183","direction":"StartToStart"},{"itemId":"b5de9277-2194-4364-8938-f9b112b26550","direction":"StartToFinish"}],"waiting":[{"itemId":"760261b9-e0e9-41d3-80a9-36cd5b1b3999","direction":"FinishToStart"},{"itemId":"53b01250-3865-4c4e-b54e-688d7347f3ef","direction":"FinishToFinish"},{"itemId":"3fd0f0ac-7d2d-4148-a47e-cac8ed8a55ed","direction":"StartToStart"},{"itemId":"c65d6e4f-8392-47dd-a9ca-8a34abbf196c","direction":"StartToFinish"}]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Item"
                },
                "example": {"id":"59f2bdaf-7bd8-4754-94bb-09d24a6cc29b","displayId":"ABCD-1234","workspaceId":"304fdf5e-510c-47f9-bdd9-e7f67c75b016","boardId":"cc5cbd11-8afa-4e65-875f-2b89d0c5c21a","rowId":"d193c57a-4db2-43f0-9250-e10614e3c38b","title":"Very important item","statusId":"432d8df6-e9d5-442e-a9ab-e8063caf3539","ownerId":"96cceb12-302a-4d67-bff2-5bc7f2294d87","assignedUserId":"e78cfedb-f39a-4726-8f0b-ec0a54328f5d","color":1,"startDate":"2026-08-30T19:48:09.9931831Z","dueDate":"2026-08-31T19:48:09.9931831Z","isScheduleLocked":false,"completedOn":"2026-08-31T07:48:09.9931831Z","description":"Description of very important item","budget":10,"estimation":10,"estimationType":"Hours","completed":false,"archived":false,"modifiedDate":"2026-08-29T19:48:09.993183Z","createdDate":"0001-01-01T00:00:00Z","totalLoggedTime":0,"milestone":false,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"150471ee-0547-40ed-b20e-8298e246fc29","tags":["Tag1","Tag2"],"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"relations":{"children":["c01f7fc8-be43-4278-bf6b-75f3e2b0f25a"],"waiting":["48de3629-d9d0-4665-9447-798e730c350a","724eafda-b25b-4bf1-8764-b048abd944bf"],"blocking":["b72b34c3-b20c-4689-b388-2ab71448befb"],"syncCopies":["2467436f-73e3-405c-ac8d-ea5592f65d0a"],"waitingDependencyDirections":[{"itemId":"fd62893a-6fec-4710-9c96-c92d70c29590","direction":"FinishToStart"}],"blockingDependencyDirections":[{"itemId":"59565cec-56f6-42b6-a023-b8a442bf5d21","direction":"StartToFinish"}]},"aggregates":{"budget":{"value":55.5},"estimation":{"value":7},"totalLoggedTime":{"value":3600}},"url":"https://company.teamhood.com/EXMPL/Board/EXMPL/ABCD-1234","hasAttachments":false,"sortOrder":1024,"parentRelativeSortOrder":1024,"baselines":[{"startDate":"2026-08-20T19:48:09.9931862Z","dueDate":"2026-09-04T19:48:09.9931862Z","estimation":8,"budget":500,"duration":10}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/items/{sourceItemId}/synced-copy": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Create a synced copy of an item",
        "description": "Which properties are synced (title, assignees, tags, child items, etc.) is controlled by the\r\nworkspace's sync configuration and cannot be overridden per request.\r\nReturns 400 if the source item already has a synced copy in any workspace.",
        "parameters": [
          {
            "name": "sourceItemId",
            "in": "path",
            "description": "ID of the item to create a synced copy of.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Target board placement for the synced copy.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddSyncedCopyRequest"
              },
              "example": {"boardId":"7c0beec3-3956-4c2b-b23b-6cc6f24fccb9","rowId":"342f0f2f-7536-4c1c-a055-c2035a4e13b8"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Item"
                },
                "example": {"id":"6916a87e-40ce-42bf-bc2f-785870be1d81","displayId":"ABCD-1234","workspaceId":"db722385-4171-4507-adc2-ba4f3ac074c9","boardId":"20d87ec8-2fb2-4c27-99ab-7de4837f6e74","rowId":"23e7daec-60eb-40b3-9e2c-cca484281379","title":"Very important item","statusId":"68673a0a-8239-4b5a-a609-0f34b653e062","ownerId":"0abd2646-c737-4306-816d-4998dd10143b","assignedUserId":"25d6bf79-378e-4478-abeb-9819422bdd53","color":1,"startDate":"2026-08-30T19:48:09.9933681Z","dueDate":"2026-08-31T19:48:09.9933681Z","isScheduleLocked":false,"completedOn":"2026-08-31T07:48:09.9933682Z","description":"Description of very important item","budget":10,"estimation":10,"estimationType":"Hours","completed":false,"archived":false,"modifiedDate":"2026-08-29T19:48:09.9933681Z","createdDate":"0001-01-01T00:00:00Z","totalLoggedTime":0,"milestone":false,"isSuspended":true,"suspendReason":"Item is suspended","parentId":"40597b1c-dbcb-475b-84c0-7d9b1f5599c3","tags":["Tag1","Tag2"],"customFields":[{"name":"Priority","value":"P1"},{"name":"Customer Name","value":"Northwind"}],"relations":{"children":["e82b3b8a-c120-4bde-9e74-eb76f02d44bf"],"waiting":["f3bdd722-52d6-4283-8890-48550129f6f5","063860eb-ec90-4c1a-8dff-76066050ce7f"],"blocking":["c8232330-37b2-4a30-9b9e-bbadcde7fdb8"],"syncCopies":["92630efb-1ca2-4589-967f-d2ac680df1fc"],"waitingDependencyDirections":[{"itemId":"d10da67d-9219-4895-bf72-ec0f5a5e0fcc","direction":"FinishToStart"}],"blockingDependencyDirections":[{"itemId":"3160e41a-894d-49e2-8ecc-676ac8d1aaa4","direction":"StartToFinish"}]},"aggregates":{"budget":{"value":55.5},"estimation":{"value":7},"totalLoggedTime":{"value":3600}},"url":"https://company.teamhood.com/EXMPL/Board/EXMPL/ABCD-1234","hasAttachments":false,"sortOrder":1024,"parentRelativeSortOrder":1024,"baselines":[{"startDate":"2026-08-20T19:48:09.9933712Z","dueDate":"2026-09-04T19:48:09.9933712Z","estimation":8,"budget":500,"duration":10}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/items/{itemId}/attachments": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Retrieves all attachments associated with the specified item.",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The unique identifier of the item.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Attachment"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The specified item could not be found or has no attachments."
          },
          "500": {
            "description": "An internal server error occurred while processing the request."
          }
        }
      }
    },
    "/api/v1/logs": {
      "get": {
        "tags": [
          "Logs"
        ],
        "summary": "List system logs by date range with paging",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "UTC timezone (ISO format, in example 2024-02-05T02:00:00Z)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "UTC timezone (ISO format, in example 2024-02-05T02:00:00Z)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "Number of records to skip (optional)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "umber of records to take (optional, max 1000)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Eylean.Application.Queries.Integration.LogEntry"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rows": {
      "post": {
        "tags": [
          "Rows"
        ],
        "summary": "Create new Board Row",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddBoardRowRequest"
              },
              "example": {"title":"Very important board row","boardId":"ff06dbcd-3dc9-4612-b41b-4438a752846a","startDate":"2026-08-31T19:48:09.9970192Z","endDate":"2026-09-01T19:48:09.9970197Z"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.BoardRow"
                },
                "example": {"id":"021cb0bc-16be-4384-87a9-cc1466c7a5bc","title":"Row title","index":0}
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/workspace": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "List Workspaces Templates",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetTemplatesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/board": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "List Board Templates",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetTemplatesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/timelogs": {
      "post": {
        "tags": [
          "Timelogs"
        ],
        "summary": "List Timelogs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.GetTimelogsRequest"
              },
              "example": {"workspaceId":"b5c42123-8b9a-4cea-8afe-4bea37397a21","startDate":"2026-08-23T00:00:00Z","endDate":"2026-08-30T00:00:00Z","boardIds":["1b10d555-dae5-4ee5-a2a8-3b2115fa3ec7"],"rowIds":["9b026d9c-8bd2-4744-a8d9-fff7d11124ac"],"userIds":["4a336548-3a37-4e88-91e2-39c6a2f74819"],"tags":["Administrative"]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetTimelogsResponse"
                },
                "example": {"timelogs":[{"timelogId":"d957ebd7-bc35-48a6-ad94-f3f04bcde3b7","userId":"d60e04aa-47b3-4325-a713-7a1129cee473","userFullName":"John Hood","itemId":"bb5c5b58-384f-4b60-9700-5b2b1b90c8e1","itemTitle":"Very important item","dateAdded":"2026-08-30T00:00:00Z","durationSeconds":3600,"description":"Time logged on task","boardId":"e85a9479-f5a1-42c6-8ded-65f5eb824c3a","boardTitle":"Board title","rowId":"cadd6e19-1e15-4c2a-b64e-ee9083aed50f","rowTitle":"Row title","tags":["Administrative"]}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List all Users",
        "responses": {
          "200": {
            "description": "Returns list of users. Note: All dates are in UTC.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetUsersResponse"
                },
                "example": {"users":[{"id":"7658b395-a85e-4e7c-ab4c-98c067f4c651","firstName":"John","lastName":"Hood","email":"john@teamhood.com","status":"Active","lastActivityDate":"2026-08-25T19:48:09.9981299Z"}]}
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Get Workspace by Id",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Workspace"
                },
                "example": {"id":"4c42800e-572a-45bf-ab8d-78d83510cd5b","displayId":"WRKSPCE","title":"Workspace title"}
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "List all Workspaces",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetAllWorkspacesResponse"
                },
                "example": {"workspaces":[{"id":"084cd175-826e-44af-8233-22a6c26a3b21","displayId":"WRKSPCE","title":"Workspace title"}]}
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Create new Workspace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddWorkspaceRequest"
              },
              "example": {"title":"Very important workspace","displayId":"DISPLAY_ID","icon":"workspace","color":1,"templateId":"f42b489f-ce66-4a2a-8ec7-50a4ec4e00ab","ownerId":"1e3091f1-7df2-4e3c-99d3-f17bdc0bad0c"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Workspace"
                },
                "example": {"id":"aba51b32-4809-4c3a-8754-ffe65cf41309","displayId":"WRKSPCE","title":"Workspace title"}
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/users/{userId}": {
      "put": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Add User to a Workspace with Workspace Collaborator access role",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.AddUserToWorkspaceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/boards": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "List Boards by Workspace Id",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.GetBoardsResponse"
                },
                "example": {"boards":[{"id":"86d7b439-d61c-4626-a400-06ba1741707d","displayId":"BRD1","title":"Board title"}]}
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ExternalAPI.Contracts.Requests.V1.AddBoardRequest": {
        "required": [
          "displayId",
          "templateId",
          "title",
          "viewType",
          "workspaceId"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "displayId": {
            "type": "string",
            "nullable": true
          },
          "viewType": {
            "$ref": "#/components/schemas/Eylean.Domain.Enums.BoardViewType"
          },
          "templateId": {
            "type": "string",
            "format": "uuid"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.AddBoardRowRequest": {
        "required": [
          "boardId",
          "title"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "boardId": {
            "type": "string",
            "format": "uuid"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.AddItemRequest": {
        "required": [
          "blocking",
          "customFields",
          "isSuspended",
          "milestone",
          "suspendReason",
          "tags",
          "title",
          "waiting"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "boardId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assignedUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "rowId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "statusId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "budget": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "completed": {
            "type": "boolean"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "milestone": {
            "type": "boolean"
          },
          "progress": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isSuspended": {
            "type": "boolean"
          },
          "suspendReason": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.CustomFieldRequest"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "blocking": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.RelationshipRequest"
            },
            "nullable": true
          },
          "waiting": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Requests.V1.RelationshipRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.AddSyncedCopyRequest": {
        "required": [
          "boardId",
          "rowId"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "boardId": {
            "type": "string",
            "description": "ID of the board to place the synced copy on.",
            "format": "uuid"
          },
          "rowId": {
            "type": "string",
            "description": "ID of the row (swimlane) on the target board.",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.AddUserToWorkspaceRequest": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.AddWorkspaceRequest": {
        "required": [
          "displayId",
          "icon",
          "ownerId",
          "templateId",
          "title"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "displayId": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "templateId": {
            "type": "string",
            "format": "uuid"
          },
          "ownerId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.CustomFieldRequest": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.GetItemActivitiesRequest": {
        "required": [
          "endDate",
          "limit",
          "offset",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Start date for the item activities query (UTC)",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "End date for the item activities query (UTC). Cannot exceed 3 months from StartDate.",
            "format": "date-time"
          },
          "offset": {
            "type": "integer",
            "description": "Offset for pagination (default: 0)",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "description": "Limit for pagination (default: 100, max: 1000)",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.GetTimelogsRequest": {
        "required": [
          "endDate",
          "startDate",
          "workspaceId"
        ],
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "boardIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "rowIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "userIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.RelationshipRequest": {
        "required": [
          "direction",
          "itemId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "format": "uuid"
          },
          "direction": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Requests.V1.UpdateItemRequest": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Idempotency key",
            "format": "uuid",
            "nullable": true
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.DateTime, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Decimal, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Attachment": {
        "required": [
          "external",
          "id",
          "itemId",
          "mimeType",
          "name",
          "size"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the attachment.",
            "format": "uuid",
            "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
          },
          "itemId": {
            "type": "string",
            "description": "The unique identifier of the item.",
            "format": "uuid",
            "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
          },
          "name": {
            "type": "string",
            "description": "The name of the attachment.",
            "nullable": true,
            "example": "Document.pdf"
          },
          "mimeType": {
            "type": "string",
            "description": "The MIME type of the attachment.",
            "nullable": true,
            "example": "application/pdf"
          },
          "size": {
            "type": "integer",
            "description": "The size of the attachment in bytes.",
            "format": "int32",
            "example": 102400
          },
          "external": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.ExternalAttachment"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Baseline": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "budget": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Board": {
        "required": [
          "displayId",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "displayId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "isPrivate": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.BoardRow": {
        "required": [
          "id",
          "index",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "index": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.CustomField": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.DependencyDirection": {
        "required": [
          "direction",
          "itemId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "format": "uuid"
          },
          "direction": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Enums.ItemStatusType": {
        "enum": [
          "New",
          "InProgress",
          "Completed"
        ],
        "type": "string"
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Enums.UserStatus": {
        "enum": [
          "Active",
          "Disabled",
          "Invited"
        ],
        "type": "string"
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.ExternalAttachment": {
        "required": [
          "source",
          "url"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/Eylean.Domain.Enums.FileSourceType"
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Item": {
        "required": [
          "aggregates",
          "archived",
          "baselines",
          "color",
          "completed",
          "createdDate",
          "customFields",
          "displayId",
          "estimationType",
          "hasAttachments",
          "id",
          "isScheduleLocked",
          "isSuspended",
          "milestone",
          "modifiedDate",
          "relations",
          "rowId",
          "sortOrder",
          "suspendReason",
          "tags",
          "title",
          "totalLoggedTime",
          "url",
          "workspaceId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "displayId": {
            "type": "string",
            "nullable": true
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          },
          "boardId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "rowId": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "statusId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assignedUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isScheduleLocked": {
            "type": "boolean"
          },
          "completedOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "budget": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimationType": {
            "type": "string",
            "nullable": true
          },
          "completed": {
            "type": "boolean"
          },
          "archived": {
            "type": "boolean"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "archivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "totalLoggedTime": {
            "type": "integer",
            "format": "int32"
          },
          "milestone": {
            "type": "boolean"
          },
          "progress": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isSuspended": {
            "type": "boolean"
          },
          "suspendReason": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.CustomField"
            },
            "nullable": true
          },
          "relations": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.ItemRelations"
          },
          "aggregates": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.ItemAggregates"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "hasAttachments": {
            "type": "boolean"
          },
          "duration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int64"
          },
          "parentRelativeSortOrder": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "baselines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Baseline"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.ItemActivityEntry": {
        "required": [
          "boardColumnId",
          "boardId",
          "id",
          "itemArchived",
          "itemId",
          "moveType",
          "timestampUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique identifier of the item activity entry",
            "format": "int64"
          },
          "boardId": {
            "type": "string",
            "description": "Board identifier",
            "format": "uuid"
          },
          "boardColumnId": {
            "type": "string",
            "description": "Board column identifier",
            "format": "uuid"
          },
          "itemId": {
            "type": "string",
            "description": "Item identifier",
            "format": "uuid"
          },
          "moveType": {
            "type": "string",
            "description": "Move type (Incoming/Outgoing)",
            "nullable": true
          },
          "timestampUtc": {
            "type": "string",
            "description": "Timestamp when the item activity was recorded (UTC)",
            "format": "date-time"
          },
          "itemArchived": {
            "type": "boolean",
            "description": "Indicates whether the item is already archived"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.ItemAggregates": {
        "required": [
          "budget",
          "customFields",
          "dueDate",
          "duration",
          "estimation",
          "progress",
          "startDate",
          "totalLoggedTime"
        ],
        "type": "object",
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Decimal, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "estimation": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Decimal, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "totalLoggedTime": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "startDate": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.DateTime, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "dueDate": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.DateTime, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "duration": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "progress": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.AggregateValue`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.CustomField"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.ItemRelations": {
        "required": [
          "blocking",
          "blockingDependencyDirections",
          "children",
          "syncCopies",
          "waiting",
          "waitingDependencyDirections"
        ],
        "type": "object",
        "properties": {
          "children": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "waiting": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "blocking": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "syncCopies": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "waitingDependencyDirections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.DependencyDirection"
            },
            "nullable": true
          },
          "blockingDependencyDirections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.DependencyDirection"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.ItemStatus": {
        "required": [
          "id",
          "index",
          "title",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Enums.ItemStatusType"
          },
          "index": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Template": {
        "required": [
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Timelog": {
        "required": [
          "boardId",
          "boardTitle",
          "dateAdded",
          "description",
          "durationSeconds",
          "itemId",
          "itemTitle",
          "rowId",
          "rowTitle",
          "tags",
          "timelogId",
          "userFullName",
          "userId"
        ],
        "type": "object",
        "properties": {
          "timelogId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "userFullName": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "format": "uuid"
          },
          "itemTitle": {
            "type": "string",
            "nullable": true
          },
          "dateAdded": {
            "type": "string",
            "format": "date-time"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "boardId": {
            "type": "string",
            "format": "uuid"
          },
          "boardTitle": {
            "type": "string",
            "nullable": true
          },
          "rowId": {
            "type": "string",
            "format": "uuid"
          },
          "rowTitle": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.User": {
        "required": [
          "accessibleWorkspaces",
          "email",
          "firstName",
          "id",
          "lastActivityDate",
          "lastName",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Enums.UserStatus"
          },
          "lastActivityDate": {
            "type": "string",
            "format": "date-time"
          },
          "accessibleWorkspaces": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.Entities.Workspace": {
        "required": [
          "displayId",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "displayId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetAllWorkspacesResponse": {
        "required": [
          "workspaces"
        ],
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Workspace"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetBoardRowsResponse": {
        "required": [
          "rows"
        ],
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.BoardRow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetBoardsResponse": {
        "required": [
          "boards"
        ],
        "type": "object",
        "properties": {
          "boards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Board"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetItemActivitiesResponse": {
        "required": [
          "entries",
          "hasMore",
          "limit",
          "offset"
        ],
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.ItemActivityEntry"
            },
            "description": "List of item activity entries",
            "nullable": true
          },
          "hasMore": {
            "type": "boolean",
            "description": "Indicates if there are more entries available for pagination"
          },
          "offset": {
            "type": "integer",
            "description": "Current offset used in the query",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "description": "Current limit used in the query",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetItemsResponse": {
        "required": [
          "items",
          "nextPageUrl"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Item"
            },
            "nullable": true
          },
          "nextPageUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetStatusesForBoardResponse": {
        "required": [
          "statuses"
        ],
        "type": "object",
        "properties": {
          "statuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.ItemStatus"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetTemplatesResponse": {
        "required": [
          "templates"
        ],
        "type": "object",
        "properties": {
          "templates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Template"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetTimelogsResponse": {
        "required": [
          "timelogs"
        ],
        "type": "object",
        "properties": {
          "timelogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.Timelog"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalAPI.Contracts.Responses.V1.GetUsersResponse": {
        "required": [
          "users"
        ],
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAPI.Contracts.Responses.V1.Entities.User"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Eylean.Application.Queries.Integration.LogEntry": {
        "required": [
          "application",
          "clientIP",
          "environment",
          "id",
          "level",
          "message",
          "timestamp",
          "version"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "level": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "environment": {
            "type": "string",
            "nullable": true
          },
          "application": {
            "type": "string",
            "nullable": true
          },
          "clientIP": {
            "type": "string",
            "nullable": true
          },
          "elapsed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "httpStatusCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Eylean.Domain.Enums.BoardViewType": {
        "enum": [
          "Kanban",
          "List",
          "Gantt",
          "Overview"
        ],
        "type": "string"
      },
      "Eylean.Domain.Enums.FileSourceType": {
        "enum": [
          "SharePoint"
        ],
        "type": "string"
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "required": [
          "detail",
          "instance",
          "title",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      }
    },
    "securitySchemes": {
      "Teamhood API Key": {
        "type": "apiKey",
        "description": "Type into the textbox: {your API Key}.",
        "name": "X-ApiKey",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Teamhood API Key": [ ]
    }
  ]
}