From 9fbabd811b279627cf48946671394019cc8c0b67 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 29 Jul 2026 00:30:43 +0000 Subject: [PATCH 1/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 273 +++++++++++++++++++++--------- 1 file changed, 191 insertions(+), 82 deletions(-) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index 013ff0d..4f0acc3 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -3385,11 +3385,11 @@ }, "get": { "tags": [ - "CompanyFiles" + "Company Files" ], "summary": "Returns the file with the specified id of the company with the specified id.", - "description": "Returns the file metadata of the company with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetCompanyFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByCompanyNameAndCompanyIdAndFileId", "parameters": [ { "name": "companyId", @@ -3422,6 +3422,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -6565,11 +6585,11 @@ }, "get": { "tags": [ - "DocumentFiles" + "Document Files" ], "summary": "Returns the file with the specified id of the document with the specified id.", - "description": "Returns the file metadata of the document with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetDocumentFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByDocumentNameAndDocumentIdAndFileId", "parameters": [ { "name": "documentId", @@ -6602,6 +6622,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -16819,11 +16859,11 @@ }, "get": { "tags": [ - "ProjectFiles" + "Project Files" ], "summary": "Returns the file with the specified id of the project with the specified id.", - "description": "Returns the file metadata of the project with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetProjectFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByProjectNameAndProjectIdAndFileId", "parameters": [ { "name": "projectId", @@ -16856,6 +16896,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -24755,11 +24815,11 @@ }, "get": { "tags": [ - "ProjectTemplateFiles" + "ProjectTemplate Files" ], "summary": "Returns the file with the specified id of the projecttemplate with the specified id.", - "description": "Returns the file metadata of the projecttemplate with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetProjectTemplateFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByProjectTemplateNameAndProjectTemplateIdAndFileId", "parameters": [ { "name": "projecttemplateId", @@ -24792,6 +24852,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -32529,11 +32609,11 @@ }, "get": { "tags": [ - "TaskFiles" + "Task Files" ], "summary": "Returns the file with the specified id of the task with the specified id.", - "description": "Returns the file metadata of the task with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetTaskFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByTaskNameAndTaskIdAndFileId", "parameters": [ { "name": "taskId", @@ -32566,6 +32646,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -35876,11 +35976,11 @@ }, "get": { "tags": [ - "TaskTemplateFiles" + "TaskTemplate Files" ], "summary": "Returns the file with the specified id of the tasktemplate with the specified id.", - "description": "Returns the file metadata of the tasktemplate with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetTaskTemplateFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByTaskTemplateNameAndTaskTemplateIdAndFileId", "parameters": [ { "name": "tasktemplateId", @@ -35913,6 +36013,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -41464,11 +41584,11 @@ }, "get": { "tags": [ - "UserFiles" + "User Files" ], "summary": "Returns the file with the specified id of the user with the specified id.", - "description": "Returns the file metadata of the user with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetUserFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByUserNameAndUserIdAndFileId", "parameters": [ { "name": "userId", @@ -41501,6 +41621,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -46567,8 +46707,8 @@ "Workspaces" ], "summary": "Returns the workspace with the specified id.", - "description": "Returns the workspace with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetWorkspace", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetWorkspacesByWorkspaceId", "parameters": [ { "name": "workspaceId", @@ -46591,63 +46731,13 @@ } } } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "any": "true" - } - }, - "put": { - "tags": [ - "Workspaces" - ], - "summary": "Updates the workspace with the specified id.", - "description": "Updates the workspace with the specified id.\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", - "operationId": "PutWorkspace", - "parameters": [ - { - "name": "workspaceId", - "in": "path", - "description": "The id of the workspace.", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "The new workspace values.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspacePutForm" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/WorkspacePutForm" - } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Workspace" + "$ref": "#/components/schemas/ErrorResponse" } } } @@ -46664,8 +46754,7 @@ "v1" ], "x-access": { - "admin": "true", - "workspace-manage-config": "write" + "any": "true" } } }, @@ -47021,11 +47110,11 @@ }, "get": { "tags": [ - "WorkspaceFiles" + "Workspace Files" ], "summary": "Returns the file with the specified id of the workspace with the specified id.", - "description": "Returns the file metadata of the workspace with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetWorkspaceFile", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesByWorkspaceNameAndWorkspaceIdAndFileId", "parameters": [ { "name": "workspaceId", @@ -47058,6 +47147,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ From ef700be1f32bdd70b24ed3cecf5843d145031349 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 30 Jul 2026 00:31:30 +0000 Subject: [PATCH 2/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 407 ++++++++++++++++++++++++++++++ 1 file changed, 407 insertions(+) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index 4f0acc3..37b399f 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -13510,6 +13510,73 @@ } } }, + "/projects/importitem": { + "post": { + "tags": [ + "Projects" + ], + "summary": "Creates a project while preserving a key supplied by an external system.", + "description": "\r\n\r\nThe user must be an admin or have `project-create:write` permissions.", + "operationId": "PostImportedProject", + "requestBody": { + "description": "The imported project payload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportedProjectPostForm" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "project-create": "write" + } + } + }, "/projects/key/{projectKey}": { "get": { "tags": [ @@ -30445,6 +30512,72 @@ } } }, + "/tasks/importitem": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Creates a project task while preserving a number supplied by an external system.", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "PostImportedTask", + "requestBody": { + "description": "The imported task payload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportedTaskPostForm" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "any": "true" + } + } + }, "/tasks/key/{taskIdentifier}": { "get": { "tags": [ @@ -55980,6 +56113,280 @@ }, "additionalProperties": false }, + "ImportedProjectPostForm": { + "required": [ + "name", + "projectKey" + ], + "type": "object", + "properties": { + "name": { + "maxLength": 1000, + "minLength": 0, + "type": "string", + "description": "The name of the Project. Max allowed length: 1000 characters.", + "example": "Website Design" + }, + "isPrivate": { + "type": "boolean", + "description": "Whether this is a private project only visible to members and the creator.\nDefaults to false.\nCan only be changed from public to private if no times have been tracked on this project.\nCan always be made public.", + "example": false + }, + "description": { + "maxLength": 25000, + "minLength": 0, + "type": "string", + "description": "The project description. Max allowed length: 25000 characters.", + "nullable": true, + "example": "Sitemap, design, assets and implementation of the new online presence." + }, + "startDate": { + "type": "string", + "description": "The start date of the project.", + "format": "date-time", + "nullable": true, + "example": "2022-03-01T00:00:00Z" + }, + "dueDate": { + "type": "string", + "description": "The due date of the project.", + "format": "date-time", + "nullable": true, + "example": "2022-05-01T00:00:00Z" + }, + "companyId": { + "type": "string", + "description": "The id of the company.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "timeBudget": { + "type": "integer", + "description": "The time budget the project has, in seconds.", + "format": "int32", + "nullable": true, + "example": 576000 + }, + "isBillableByDefault": { + "type": "boolean", + "description": "Whether project times should be billable by default.", + "nullable": true, + "example": true + }, + "projectTypeId": { + "type": "string", + "description": "The id of the project type of this project.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "color": { + "maxLength": 14, + "minLength": 0, + "type": "string", + "description": "The color of the project for display purposes in awork.\nThe supported colors are defined by the awork frontend.\nCan be null when no color assigned.", + "nullable": true, + "example": "purple" + }, + "deductNonBillableHours": { + "type": "boolean", + "description": "Whether to deduct non-billable hours from project budgets." + }, + "isProjectKeyVisible": { + "type": "boolean", + "description": "Whether project key should be visible for this project.\nIf null, it will use the workspace default setting.", + "nullable": true + }, + "projectStatusId": { + "type": "string", + "description": "Optional existing status to use when creating from a workflow or template source.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "projectTemplateId": { + "type": "string", + "description": "The id of the template which is used to create the project.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "publicProjectTemplateId": { + "type": "string", + "description": "The id of the public template which is used to create the project.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "workflowId": { + "type": "string", + "description": "The id of the workflow to link to the project.\nCannot be specified if ProjectTemplateId is set.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "referenceDateType": { + "enum": [ + "today", + "start", + "end", + "custom" + ], + "type": "string", + "description": "(optional, default = TODAY) Defines the starting date from which the reference date is calculated.\nThe reference date is the date from which the Start/DueOn date of a task is calculated, based on the ReferenceDateAnchor.", + "nullable": true + }, + "referenceDateAnchor": { + "enum": [ + "starts_on_reference_date", + "ends_on_reference_date" + ], + "type": "string", + "description": "(optional, default = START) Defines what the reference date represents for the schedule (start of first task or end of last task).", + "nullable": true + }, + "customReferenceDate": { + "type": "string", + "description": "(optional) The custom reference date when ReferenceDateType is set to 'custom'.", + "format": "date", + "nullable": true + }, + "projectKey": { + "maxLength": 32, + "minLength": 1, + "type": "string", + "description": "The project key to preserve from the external system." + } + }, + "additionalProperties": false, + "description": "Form for creating a project with a key supplied by an external system." + }, + "ImportedTaskPostForm": { + "required": [ + "baseType", + "name", + "taskNumber" + ], + "type": "object", + "properties": { + "name": { + "maxLength": 1000, + "minLength": 0, + "type": "string", + "description": "The name of the task. Max allowed length: 1000 characters.", + "example": "Create logo concept" + }, + "description": { + "type": "string", + "description": "The description of the task. Max allowed length: 25000 characters.", + "nullable": true, + "example": "We need to create a new impactful concept for the customer logo" + }, + "isPrio": { + "type": "boolean", + "description": "Whether this task is marked as priority.", + "nullable": true, + "example": true + }, + "startOn": { + "type": "string", + "description": "The expected start date and time of the task.", + "format": "date-time", + "nullable": true, + "example": "2023-03-03T17:00:00Z" + }, + "dueOn": { + "type": "string", + "description": "The expected due date and time of the task.", + "format": "date-time", + "nullable": true, + "example": "2023-03-18T17:00:00Z" + }, + "laneOrder": { + "type": "integer", + "description": "The lane order defines the vertical position in the task board.", + "format": "int32", + "nullable": true + }, + "plannedDuration": { + "type": "integer", + "description": "The expected planned workload of the task, in seconds.", + "format": "int32", + "nullable": true, + "example": 21600 + }, + "typeOfWorkId": { + "type": "string", + "description": "The id of the type of work for this task.\nIf not provided, defaults to the first type of work in the workspace.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "taskStatusId": { + "type": "string", + "description": "The id of the status for this task.\nIf not provided, defaults to the first status of type 'todo'.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "order": { + "type": "number", + "description": "The order of the task in a task status column.", + "format": "double", + "nullable": true, + "example": 3 + }, + "subtaskOrder": { + "type": "number", + "description": "The order of the subtask relative to its parent task.", + "format": "double", + "nullable": true, + "example": 1 + }, + "entityId": { + "type": "string", + "description": "The id of the entity the task is related to.\nFor private tasks, this is optional and will default to the current user's ID if not provided.\nFor project tasks, this is required and must be the project ID.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "baseType": { + "minLength": 1, + "enum": [ + "private", + "projecttask" + ], + "type": "string", + "description": "The base type of the task. Can be 'private' for a private task or 'projecttask' for a project task.", + "example": "projecttask" + }, + "parentId": { + "type": "string", + "description": "The id of the parent task. Setting this value means this is a subtask.", + "format": "uuid", + "nullable": true, + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "lists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListAssignment" + }, + "description": "The list(s) the new task should be added to.", + "nullable": true + }, + "taskNumber": { + "maximum": 1073741823, + "minimum": 1, + "type": "integer", + "description": "The positive task number to preserve from the external system.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Form for creating a project task with a number supplied by an external system." + }, "InitialDashboardModel": { "type": "object", "properties": { From 2f5e31412349433eff2a42a48debb2ff21311b12 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 1 Aug 2026 00:34:16 +0000 Subject: [PATCH 3/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 220 ++++++++++++++++++++++++++---- 1 file changed, 191 insertions(+), 29 deletions(-) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index 37b399f..0695434 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -4037,11 +4037,11 @@ "/companies/{companyId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "CompanyFiles" + "Company Files" ], "summary": "Returns the company file version with the specified id.", - "description": "Returns the company file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetCompanyFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByCompanyNameAndCompanyIdAndFileIdAndVersionId", "parameters": [ { "name": "companyId", @@ -4084,6 +4084,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -7098,11 +7118,11 @@ "/documents/{documentId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "DocumentFiles" + "Document Files" ], "summary": "Returns the document file version with the specified id.", - "description": "Returns the document file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetDocumentFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByDocumentNameAndDocumentIdAndFileIdAndVersionId", "parameters": [ { "name": "documentId", @@ -7145,6 +7165,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -17578,11 +17618,11 @@ "/projects/{projectId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "ProjectFiles" + "Project Files" ], "summary": "Returns the project file version with the specified id.", - "description": "Returns the project file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetProjectFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByProjectNameAndProjectIdAndFileIdAndVersionId", "parameters": [ { "name": "projectId", @@ -17625,6 +17665,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -25534,11 +25594,11 @@ "/projecttemplates/{projecttemplateId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "ProjectTemplateFiles" + "ProjectTemplate Files" ], "summary": "Returns the projecttemplate file version with the specified id.", - "description": "Returns the projecttemplate file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetProjectTemplateFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByProjectTemplateNameAndProjectTemplateIdAndFileIdAndVersionId", "parameters": [ { "name": "projecttemplateId", @@ -25581,6 +25641,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -33394,11 +33474,11 @@ "/tasks/{taskId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "TaskFiles" + "Task Files" ], "summary": "Returns the task file version with the specified id.", - "description": "Returns the task file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetTaskFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByTaskNameAndTaskIdAndFileIdAndVersionId", "parameters": [ { "name": "taskId", @@ -33441,6 +33521,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -36761,11 +36861,11 @@ "/tasktemplates/{tasktemplateId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "TaskTemplateFiles" + "TaskTemplate Files" ], "summary": "Returns the tasktemplate file version with the specified id.", - "description": "Returns the tasktemplate file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetTaskTemplateFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByTaskTemplateNameAndTaskTemplateIdAndFileIdAndVersionId", "parameters": [ { "name": "tasktemplateId", @@ -36808,6 +36908,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -42369,11 +42489,11 @@ "/users/{userId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "UserFiles" + "User Files" ], "summary": "Returns the user file version with the specified id.", - "description": "Returns the user file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetUserFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByUserNameAndUserIdAndFileIdAndVersionId", "parameters": [ { "name": "userId", @@ -42416,6 +42536,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -47895,11 +48035,11 @@ "/workspaces/{workspaceId}/files/{fileId}/versions/{versionId}": { "get": { "tags": [ - "WorkspaceFiles" + "Workspace Files" ], "summary": "Returns the workspace file version with the specified id.", - "description": "Returns the workspace file version with the specified id.\r\n\r\nAny authenticated user.", - "operationId": "GetWorkspaceFileVersion", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetFilesVersionsByWorkspaceNameAndWorkspaceIdAndFileIdAndVersionId", "parameters": [ { "name": "workspaceId", @@ -47942,6 +48082,26 @@ } } } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } }, "security": [ @@ -61572,7 +61732,8 @@ "description": "Whether the project start and due dates should be synced to the retainer start and end dates." } }, - "additionalProperties": false + "additionalProperties": false, + "description": "Creates or updates a monthly retainer contract. When `SyncProjectDates` is false, `StartDate` must be\nthe first day of a month and `EndDate`, when set, must be the last day of a month and later than `StartDate`." }, "Role": { "required": [ @@ -64805,7 +64966,8 @@ "example": "123e4567-e89b-12d3-a456-426614174000" } }, - "additionalProperties": false + "additionalProperties": false, + "description": "Creates a time entry from either UTC date/time fields or local date/time fields.\nDo not mix the UTC and local field groups in one request. Set either `StartDateUtc` with the other UTC fields,\nor `StartDateLocal` with the other local fields." }, "TimeFrameModel": { "type": "object", @@ -70240,7 +70402,7 @@ "items": { "$ref": "#/components/schemas/AlertForm" }, - "description": "The alerts of the autopilot." + "description": "The alerts of the autopilot. The collection must contain every alert type returned by\nGET /autopilot/availablealerts, including alerts that should be disabled." }, "id": { "type": "string", @@ -70290,7 +70452,7 @@ "items": { "$ref": "#/components/schemas/AlertPostForm" }, - "description": "The alerts of the autopilot.", + "description": "The alerts of the autopilot. Omit this collection or provide an empty collection to enable every available alert\nwith its default settings. A non-empty collection must contain every alert type returned by GET /autopilot/availablealerts.", "nullable": true } }, @@ -70320,7 +70482,7 @@ "items": { "$ref": "#/components/schemas/AlertForm" }, - "description": "The alerts of the autopilot." + "description": "The alerts of the autopilot. The collection must contain every alert type returned by\nGET /autopilot/availablealerts, including alerts that should be disabled." } }, "additionalProperties": false From 7a3a24f6f80dc33a7b397b2d82f276738948ce0d Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 5 Aug 2026 00:32:31 +0000 Subject: [PATCH 4/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index 0695434..6a0e35a 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -57862,6 +57862,10 @@ "description": "The list of entity Ids that changed since the last sync but the user no longer has access to.\nThese are entities that the user previously had access to (and may exist in the frontend store from previous syncs)\nbut can no longer access due to permission changes (e.g., removed as project member, role downgraded).\nThe frontend should remove these entities from the store.", "nullable": true }, + "reconciliationRequired": { + "type": "boolean", + "description": "Indicates that a permission-triggered full sync omitted cleanup IDs and the client must reconcile its tracked IDs." + }, "lastSync": { "type": "string", "description": "The timestamp of the last sync operation. This indicates the point in time when the data was last synchronized.", @@ -64011,6 +64015,40 @@ }, "additionalProperties": false }, + "TaskSyncReconciliationForm": { + "required": [ + "entityIds" + ], + "type": "object", + "properties": { + "entityIds": { + "maxItems": 500, + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the locally tracked task IDs to check for current accessibility." + } + }, + "additionalProperties": false + }, + "TaskSyncReconciliationResponse": { + "type": "object", + "properties": { + "accessibleEntityIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "The tracked task IDs that are still active and accessible to the requesting user.", + "nullable": true + } + }, + "additionalProperties": false + }, "TaskTagModel": { "type": "object", "properties": { From 71f6e776e7771e969a0b8ff49ef9e4b8cbb09122 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 8 Aug 2026 00:17:14 +0000 Subject: [PATCH 5/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index 6a0e35a..fbe4ae8 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -4752,8 +4752,8 @@ "tags": [ "Documents" ], - "summary": "Creates a new document.", - "description": "\r\n\r\nAny authenticated user.", + "summary": "Creates a new document. Optional content must be UTF-8 HTML for the awork rich-text editor; Markdown is not supported.", + "description": "When content is provided, it must be UTF-8 HTML formatted for the awork rich-text editor. Markdown is not supported.\r\n\r\nAny authenticated user.", "operationId": "PostDocument", "requestBody": { "content": { @@ -5777,8 +5777,8 @@ "tags": [ "Documents" ], - "summary": "Updates the content of the document with the specified id.", - "description": "The user must have at least `write` permissions for the specified document.", + "summary": "Updates document content using UTF-8 HTML for the awork rich-text editor; Markdown is not supported.", + "description": "Content must be UTF-8 HTML formatted for the awork rich-text editor. Markdown is not supported.\r\n \r\n The user must have at least `write` permissions for the specified document.", "operationId": "PutDocumentContentByDocumentId", "parameters": [ { @@ -19001,7 +19001,7 @@ "Retainers" ], "summary": "Endpoint to update the retainer for a project.", - "description": "The end date of the retainer can only be updated via the POST /setDates endpoint.\r\n The start date, the retainer period, and the timezone can not be updated. Delete the retainer and create a new one instead.\r\n \r\n The user needs to have the ProjectMasterData write permission for the project to access this endpoint.\r\n\r\nAny authenticated user.", + "description": "Date changes must not overlap another retainer for the project. The retainer period cannot be changed.\r\n \r\n The user needs to have the ProjectMasterData write permission for the project to access this endpoint.\r\n\r\nAny authenticated user.", "operationId": "PutProjectRetainerByProjectIdAndRetainerId", "parameters": [ { @@ -52614,14 +52614,14 @@ "maxLength": 25, "minLength": 0, "type": "string", - "description": "The type of the contact info. Possible values are: 'phone', 'email', 'address', 'custom'.", + "description": "The type of the contact info. Possible values are: 'phone', 'email', 'address', 'url', 'custom'.", "example": "address" }, "subType": { "maxLength": 25, "minLength": 0, "type": "string", - "description": "The subtype of the contact info, Possible values are:\nphone: [ 'central', 'other' ]\nemail: [ 'central', 'invoice', 'other' ]\naddress: [ 'central', 'invoice', 'other' ] url: [ 'primary', 'other']", + "description": "The subtype of the contact info. Required for all types except 'custom'. Possible values are:\nphone: [ 'central', 'other' ]\nemail: [ 'central', 'invoice', 'other' ]\naddress: [ 'central', 'invoice', 'other' ]\nurl: [ 'primary', 'other' ]", "nullable": true, "example": "central" }, @@ -52733,14 +52733,14 @@ "maxLength": 25, "minLength": 0, "type": "string", - "description": "The type of the contact info. Possible values are: 'phone', 'email', 'address', 'custom'.", + "description": "The type of the contact info. Possible values are: 'phone', 'email', 'address', 'url', 'custom'.", "example": "address" }, "subType": { "maxLength": 25, "minLength": 0, "type": "string", - "description": "The subtype of the contact info, Possible values are:\nphone: [ 'central', 'other' ]\nemail: [ 'central', 'invoice', 'other' ]\naddress: [ 'central', 'invoice', 'other' ] url: [ 'primary', 'other']", + "description": "The subtype of the contact info. Required for all types except 'custom'. Possible values are:\nphone: [ 'central', 'other' ]\nemail: [ 'central', 'invoice', 'other' ]\naddress: [ 'central', 'invoice', 'other' ]\nurl: [ 'primary', 'other' ]", "nullable": true, "example": "central" }, @@ -54351,7 +54351,7 @@ "properties": { "content": { "type": "string", - "description": "The content of the document.", + "description": "The UTF-8 HTML content of the document, formatted for the awork rich-text editor. Markdown is not supported.", "format": "binary" } }, @@ -54738,7 +54738,7 @@ }, "content": { "type": "string", - "description": "The content of the document.", + "description": "The optional UTF-8 HTML content of the document, formatted for the awork rich-text editor. Markdown is not supported.", "format": "binary", "nullable": true } From ff929997afa07d9471fd8c73a922aafe98ac63c8 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 14 Aug 2026 00:23:41 +0000 Subject: [PATCH 6/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 673 ------------------------------ 1 file changed, 673 deletions(-) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index fbe4ae8..ebe290e 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -43824,441 +43824,6 @@ } } }, - "/webhooks": { - "get": { - "tags": [ - "Webhooks" - ], - "summary": "Returns all configured webhooks.", - "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", - "operationId": "GetWebhooks", - "parameters": [ - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/pageSize" - }, - { - "$ref": "#/components/parameters/orderby" - }, - { - "$ref": "#/components/parameters/filterby" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookConfig" - } - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "read" - } - }, - "post": { - "tags": [ - "Webhooks" - ], - "summary": "Creates a new webhook.", - "description": "The receiver type is inferred from the URI. All unknown receivers are treated as 'custom'.\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", - "operationId": "PostWebhook", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigForm" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfig" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "write" - } - } - }, - "/webhooks/eventtypes": { - "get": { - "tags": [ - "Webhooks" - ], - "summary": "Returns all available event types.", - "description": "\r\n\r\nAny authenticated user.", - "operationId": "GetWebhookEventTypes", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "any": "true" - } - } - }, - "/webhooks/eventtypes/slack": { - "get": { - "tags": [ - "Webhooks" - ], - "summary": "Returns all available event types for Slack webhooks.", - "description": "\r\n\r\nAny authenticated user.", - "operationId": "GetSlackEventTypes", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "any": "true" - } - } - }, - "/webhooks/{webhookId}": { - "delete": { - "tags": [ - "Webhooks" - ], - "summary": "Deletes the webhook with the specified id.", - "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", - "operationId": "DeleteWebhook", - "parameters": [ - { - "name": "webhookId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "write" - } - }, - "get": { - "tags": [ - "Webhooks" - ], - "summary": "Returns the webhook with the specified id.", - "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", - "operationId": "GetWebhook", - "parameters": [ - { - "name": "webhookId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfig" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "read" - } - }, - "put": { - "tags": [ - "Webhooks" - ], - "summary": "Updates the webhook with the specified id.", - "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", - "operationId": "PutWebhook", - "parameters": [ - { - "name": "webhookId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigForm" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfig" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "write" - } - } - }, - "/webhooks/{webhookId}/logs": { - "get": { - "tags": [ - "Webhooks" - ], - "summary": "Returns all logs of the webhook with the specified id.", - "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", - "operationId": "GetWebhookLogs", - "parameters": [ - { - "name": "webhookId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/pageSize" - }, - { - "$ref": "#/components/parameters/orderby" - }, - { - "$ref": "#/components/parameters/filterby" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookLog" - } - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "workspace-manage-config": "read" - } - } - }, "/workflows": { "get": { "tags": [ @@ -70119,240 +69684,6 @@ }, "additionalProperties": false }, - "WebhookConfig": { - "required": [ - "authenticationType", - "events", - "isActive", - "name", - "uri" - ], - "type": "object", - "properties": { - "name": { - "minLength": 1, - "type": "string", - "description": "The name of this webhook event.", - "example": "Post to Slack" - }, - "uri": { - "minLength": 1, - "type": "string", - "description": "The URI to call.", - "example": "https://hooks.slack.com/services/T578C/EY8979" - }, - "language": { - "type": "string", - "description": "The language of the web hook message that will be sent to the receiver.\nNot required for custom web hooks.", - "nullable": true, - "example": "en-GB" - }, - "events": { - "minLength": 1, - "type": "string", - "description": "The event(s) that trigger the web hook.\nA comma-separated list of events that trigger the webhook.\nThe allowed events depend on the webhook type.\nFor type 'custom': retrieve the list of allowed events from '/webhooks/eventTypes'\nFor type 'slack': retrieve the list of allowed events from '/webhooks/eventTypes/slack'", - "example": "task_comment_added" - }, - "isActive": { - "type": "boolean", - "description": "Whether the web hook is currently active.", - "example": true - }, - "onlyTriggerForMainEntityChanges": { - "type": "boolean", - "description": "Whether to only send events for main entity changes and not for nested entities if the webhook is for a model." - }, - "authenticationType": { - "minLength": 1, - "type": "string", - "description": "The authentication type to use when calling the URI.\nCan be 'none', 'header'.", - "example": "none" - }, - "authentication": { - "type": "string", - "description": "The authentication value to use when calling the URI.\nShould be 'key=value'.\nIn case of header authentication, this should be 'headername=headervalue'.\nOnly required when the AuthenticationType is anything other than 'none'.", - "nullable": true, - "example": null - }, - "id": { - "type": "string", - "description": "The id of the webhook config.", - "format": "uuid", - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "receiverType": { - "type": "string", - "description": "The type of the web hook.\nCan be 'custom', 'slack'.", - "nullable": true, - "example": "slack" - }, - "lastFailureReason": { - "type": "string", - "description": "The most recent failure reason.", - "nullable": true, - "example": null - }, - "createdOn": { - "type": "string", - "description": "The date this webhook config was created.", - "format": "date-time" - }, - "createdBy": { - "type": "string", - "description": "The id of the user who created this webhook config.", - "format": "uuid", - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "updatedOn": { - "type": "string", - "description": "The date this webhook config was last modified.", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "The id of the user who last modified this webhook config.", - "format": "uuid", - "example": "123e4567-e89b-12d3-a456-426614174000" - } - }, - "additionalProperties": false, - "description": "The webhook config model." - }, - "WebhookConfigForm": { - "required": [ - "authenticationType", - "events", - "isActive", - "name", - "uri" - ], - "type": "object", - "properties": { - "name": { - "minLength": 1, - "type": "string", - "description": "The name of this webhook event.", - "example": "Post to Slack" - }, - "uri": { - "minLength": 1, - "type": "string", - "description": "The URI to call.", - "example": "https://hooks.slack.com/services/T578C/EY8979" - }, - "language": { - "type": "string", - "description": "The language of the web hook message that will be sent to the receiver.\nNot required for custom web hooks.", - "nullable": true, - "example": "en-GB" - }, - "events": { - "minLength": 1, - "type": "string", - "description": "The event(s) that trigger the web hook.\nA comma-separated list of events that trigger the webhook.\nThe allowed events depend on the webhook type.\nFor type 'custom': retrieve the list of allowed events from '/webhooks/eventTypes'\nFor type 'slack': retrieve the list of allowed events from '/webhooks/eventTypes/slack'", - "example": "task_comment_added" - }, - "isActive": { - "type": "boolean", - "description": "Whether the web hook is currently active.", - "example": true - }, - "onlyTriggerForMainEntityChanges": { - "type": "boolean", - "description": "Whether to only send events for main entity changes and not for nested entities if the webhook is for a model." - }, - "authenticationType": { - "minLength": 1, - "type": "string", - "description": "The authentication type to use when calling the URI.\nCan be 'none', 'header'.", - "example": "none" - }, - "authentication": { - "type": "string", - "description": "The authentication value to use when calling the URI.\nShould be 'key=value'.\nIn case of header authentication, this should be 'headername=headervalue'.\nOnly required when the AuthenticationType is anything other than 'none'.", - "nullable": true, - "example": null - } - }, - "additionalProperties": false, - "description": "The model to create or update a webhook config." - }, - "WebhookLog": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message which has been sent to the webhook receiver.", - "nullable": true, - "example": "{ \"event\": \"task_comment_added: }" - }, - "webhookId": { - "type": "string", - "description": "The id of the webhook.", - "format": "uuid", - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "responseCode": { - "type": "integer", - "description": "The HTTP response code of the request.", - "format": "int32", - "example": 200 - }, - "createdOn": { - "type": "string", - "description": "The date the log was created.", - "format": "date-time" - }, - "reason": { - "type": "string", - "description": "The failure reason if the request failed.", - "nullable": true, - "example": null - }, - "isSuccessful": { - "type": "boolean", - "description": "Whether the request was successful.", - "example": true - } - }, - "additionalProperties": false - }, - "WebhookSlackConfigForm": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The Slack webhook code.", - "nullable": true, - "example": "44271543281.317837595255.b0952db" - } - }, - "additionalProperties": false, - "description": "The Slack webhook config model." - }, - "WebhookTestResult": { - "type": "object", - "properties": { - "responseCode": { - "type": "integer", - "description": "The HTTP response code of the test request.", - "format": "int32", - "example": 200 - }, - "reason": { - "type": "string", - "description": "The failure reason if the test request failed.", - "nullable": true, - "example": null - }, - "isSuccessful": { - "type": "boolean", - "description": "Whether the test request was successful.", - "example": true - } - }, - "additionalProperties": false - }, "AlertForm": { "required": [ "alert", @@ -75478,10 +74809,6 @@ "name": "Workflow Automations", "description": "Endpoints to manage automations scoped to workflows." }, - { - "name": "Webhooks", - "description": "Endpoints to manage webhook configurations, tests, and external integrations." - }, { "name": "Autopilot", "description": "Endpoints to manage awork autopilot settings for projects." From 257a1019ece87594f6b724002cf1ff74306c2b0e Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 15 Aug 2026 00:12:22 +0000 Subject: [PATCH 7/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 673 ++++++++++++++++++++++++++++++ 1 file changed, 673 insertions(+) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index ebe290e..fbe4ae8 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -43824,6 +43824,441 @@ } } }, + "/webhooks": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Returns all configured webhooks.", + "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", + "operationId": "GetWebhooks", + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/pageSize" + }, + { + "$ref": "#/components/parameters/orderby" + }, + { + "$ref": "#/components/parameters/filterby" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookConfig" + } + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "read" + } + }, + "post": { + "tags": [ + "Webhooks" + ], + "summary": "Creates a new webhook.", + "description": "The receiver type is inferred from the URI. All unknown receivers are treated as 'custom'.\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", + "operationId": "PostWebhook", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigForm" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfig" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "write" + } + } + }, + "/webhooks/eventtypes": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Returns all available event types.", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetWebhookEventTypes", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "any": "true" + } + } + }, + "/webhooks/eventtypes/slack": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Returns all available event types for Slack webhooks.", + "description": "\r\n\r\nAny authenticated user.", + "operationId": "GetSlackEventTypes", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "any": "true" + } + } + }, + "/webhooks/{webhookId}": { + "delete": { + "tags": [ + "Webhooks" + ], + "summary": "Deletes the webhook with the specified id.", + "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", + "operationId": "DeleteWebhook", + "parameters": [ + { + "name": "webhookId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "write" + } + }, + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Returns the webhook with the specified id.", + "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", + "operationId": "GetWebhook", + "parameters": [ + { + "name": "webhookId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfig" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "read" + } + }, + "put": { + "tags": [ + "Webhooks" + ], + "summary": "Updates the webhook with the specified id.", + "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:write` permissions.", + "operationId": "PutWebhook", + "parameters": [ + { + "name": "webhookId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigForm" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfig" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "write" + } + } + }, + "/webhooks/{webhookId}/logs": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Returns all logs of the webhook with the specified id.", + "description": "\r\n\r\nThe user must be an admin or have `workspace-manage-config:read` permissions.", + "operationId": "GetWebhookLogs", + "parameters": [ + { + "name": "webhookId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/pageSize" + }, + { + "$ref": "#/components/parameters/orderby" + }, + { + "$ref": "#/components/parameters/filterby" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookLog" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [ + { + "oauth2": [ + "full_access" + ] + } + ], + "x-api-versions": [ + "v1" + ], + "x-access": { + "admin": "true", + "workspace-manage-config": "read" + } + } + }, "/workflows": { "get": { "tags": [ @@ -69684,6 +70119,240 @@ }, "additionalProperties": false }, + "WebhookConfig": { + "required": [ + "authenticationType", + "events", + "isActive", + "name", + "uri" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "type": "string", + "description": "The name of this webhook event.", + "example": "Post to Slack" + }, + "uri": { + "minLength": 1, + "type": "string", + "description": "The URI to call.", + "example": "https://hooks.slack.com/services/T578C/EY8979" + }, + "language": { + "type": "string", + "description": "The language of the web hook message that will be sent to the receiver.\nNot required for custom web hooks.", + "nullable": true, + "example": "en-GB" + }, + "events": { + "minLength": 1, + "type": "string", + "description": "The event(s) that trigger the web hook.\nA comma-separated list of events that trigger the webhook.\nThe allowed events depend on the webhook type.\nFor type 'custom': retrieve the list of allowed events from '/webhooks/eventTypes'\nFor type 'slack': retrieve the list of allowed events from '/webhooks/eventTypes/slack'", + "example": "task_comment_added" + }, + "isActive": { + "type": "boolean", + "description": "Whether the web hook is currently active.", + "example": true + }, + "onlyTriggerForMainEntityChanges": { + "type": "boolean", + "description": "Whether to only send events for main entity changes and not for nested entities if the webhook is for a model." + }, + "authenticationType": { + "minLength": 1, + "type": "string", + "description": "The authentication type to use when calling the URI.\nCan be 'none', 'header'.", + "example": "none" + }, + "authentication": { + "type": "string", + "description": "The authentication value to use when calling the URI.\nShould be 'key=value'.\nIn case of header authentication, this should be 'headername=headervalue'.\nOnly required when the AuthenticationType is anything other than 'none'.", + "nullable": true, + "example": null + }, + "id": { + "type": "string", + "description": "The id of the webhook config.", + "format": "uuid", + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "receiverType": { + "type": "string", + "description": "The type of the web hook.\nCan be 'custom', 'slack'.", + "nullable": true, + "example": "slack" + }, + "lastFailureReason": { + "type": "string", + "description": "The most recent failure reason.", + "nullable": true, + "example": null + }, + "createdOn": { + "type": "string", + "description": "The date this webhook config was created.", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "description": "The id of the user who created this webhook config.", + "format": "uuid", + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "updatedOn": { + "type": "string", + "description": "The date this webhook config was last modified.", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "The id of the user who last modified this webhook config.", + "format": "uuid", + "example": "123e4567-e89b-12d3-a456-426614174000" + } + }, + "additionalProperties": false, + "description": "The webhook config model." + }, + "WebhookConfigForm": { + "required": [ + "authenticationType", + "events", + "isActive", + "name", + "uri" + ], + "type": "object", + "properties": { + "name": { + "minLength": 1, + "type": "string", + "description": "The name of this webhook event.", + "example": "Post to Slack" + }, + "uri": { + "minLength": 1, + "type": "string", + "description": "The URI to call.", + "example": "https://hooks.slack.com/services/T578C/EY8979" + }, + "language": { + "type": "string", + "description": "The language of the web hook message that will be sent to the receiver.\nNot required for custom web hooks.", + "nullable": true, + "example": "en-GB" + }, + "events": { + "minLength": 1, + "type": "string", + "description": "The event(s) that trigger the web hook.\nA comma-separated list of events that trigger the webhook.\nThe allowed events depend on the webhook type.\nFor type 'custom': retrieve the list of allowed events from '/webhooks/eventTypes'\nFor type 'slack': retrieve the list of allowed events from '/webhooks/eventTypes/slack'", + "example": "task_comment_added" + }, + "isActive": { + "type": "boolean", + "description": "Whether the web hook is currently active.", + "example": true + }, + "onlyTriggerForMainEntityChanges": { + "type": "boolean", + "description": "Whether to only send events for main entity changes and not for nested entities if the webhook is for a model." + }, + "authenticationType": { + "minLength": 1, + "type": "string", + "description": "The authentication type to use when calling the URI.\nCan be 'none', 'header'.", + "example": "none" + }, + "authentication": { + "type": "string", + "description": "The authentication value to use when calling the URI.\nShould be 'key=value'.\nIn case of header authentication, this should be 'headername=headervalue'.\nOnly required when the AuthenticationType is anything other than 'none'.", + "nullable": true, + "example": null + } + }, + "additionalProperties": false, + "description": "The model to create or update a webhook config." + }, + "WebhookLog": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message which has been sent to the webhook receiver.", + "nullable": true, + "example": "{ \"event\": \"task_comment_added: }" + }, + "webhookId": { + "type": "string", + "description": "The id of the webhook.", + "format": "uuid", + "example": "123e4567-e89b-12d3-a456-426614174000" + }, + "responseCode": { + "type": "integer", + "description": "The HTTP response code of the request.", + "format": "int32", + "example": 200 + }, + "createdOn": { + "type": "string", + "description": "The date the log was created.", + "format": "date-time" + }, + "reason": { + "type": "string", + "description": "The failure reason if the request failed.", + "nullable": true, + "example": null + }, + "isSuccessful": { + "type": "boolean", + "description": "Whether the request was successful.", + "example": true + } + }, + "additionalProperties": false + }, + "WebhookSlackConfigForm": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The Slack webhook code.", + "nullable": true, + "example": "44271543281.317837595255.b0952db" + } + }, + "additionalProperties": false, + "description": "The Slack webhook config model." + }, + "WebhookTestResult": { + "type": "object", + "properties": { + "responseCode": { + "type": "integer", + "description": "The HTTP response code of the test request.", + "format": "int32", + "example": 200 + }, + "reason": { + "type": "string", + "description": "The failure reason if the test request failed.", + "nullable": true, + "example": null + }, + "isSuccessful": { + "type": "boolean", + "description": "Whether the test request was successful.", + "example": true + } + }, + "additionalProperties": false + }, "AlertForm": { "required": [ "alert", @@ -74809,6 +75478,10 @@ "name": "Workflow Automations", "description": "Endpoints to manage automations scoped to workflows." }, + { + "name": "Webhooks", + "description": "Endpoints to manage webhook configurations, tests, and external integrations." + }, { "name": "Autopilot", "description": "Endpoints to manage awork autopilot settings for projects." From e61b187328bd13c29b5e354f1a1bf3084bb1fc5f Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 18 Aug 2026 00:11:51 +0000 Subject: [PATCH 8/8] Update API specifications with fern api update --- fern/apis/v1/openapi/openapi.json | 407 ------------------------------ 1 file changed, 407 deletions(-) diff --git a/fern/apis/v1/openapi/openapi.json b/fern/apis/v1/openapi/openapi.json index fbe4ae8..d6b38a0 100644 --- a/fern/apis/v1/openapi/openapi.json +++ b/fern/apis/v1/openapi/openapi.json @@ -13550,73 +13550,6 @@ } } }, - "/projects/importitem": { - "post": { - "tags": [ - "Projects" - ], - "summary": "Creates a project while preserving a key supplied by an external system.", - "description": "\r\n\r\nThe user must be an admin or have `project-create:write` permissions.", - "operationId": "PostImportedProject", - "requestBody": { - "description": "The imported project payload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportedProjectPostForm" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Project" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "admin": "true", - "project-create": "write" - } - } - }, "/projects/key/{projectKey}": { "get": { "tags": [ @@ -30592,72 +30525,6 @@ } } }, - "/tasks/importitem": { - "post": { - "tags": [ - "Tasks" - ], - "summary": "Creates a project task while preserving a number supplied by an external system.", - "description": "\r\n\r\nAny authenticated user.", - "operationId": "PostImportedTask", - "requestBody": { - "description": "The imported task payload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportedTaskPostForm" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TaskModel" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "full_access" - ] - } - ], - "x-api-versions": [ - "v1" - ], - "x-access": { - "any": "true" - } - } - }, "/tasks/key/{taskIdentifier}": { "get": { "tags": [ @@ -56273,280 +56140,6 @@ }, "additionalProperties": false }, - "ImportedProjectPostForm": { - "required": [ - "name", - "projectKey" - ], - "type": "object", - "properties": { - "name": { - "maxLength": 1000, - "minLength": 0, - "type": "string", - "description": "The name of the Project. Max allowed length: 1000 characters.", - "example": "Website Design" - }, - "isPrivate": { - "type": "boolean", - "description": "Whether this is a private project only visible to members and the creator.\nDefaults to false.\nCan only be changed from public to private if no times have been tracked on this project.\nCan always be made public.", - "example": false - }, - "description": { - "maxLength": 25000, - "minLength": 0, - "type": "string", - "description": "The project description. Max allowed length: 25000 characters.", - "nullable": true, - "example": "Sitemap, design, assets and implementation of the new online presence." - }, - "startDate": { - "type": "string", - "description": "The start date of the project.", - "format": "date-time", - "nullable": true, - "example": "2022-03-01T00:00:00Z" - }, - "dueDate": { - "type": "string", - "description": "The due date of the project.", - "format": "date-time", - "nullable": true, - "example": "2022-05-01T00:00:00Z" - }, - "companyId": { - "type": "string", - "description": "The id of the company.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "timeBudget": { - "type": "integer", - "description": "The time budget the project has, in seconds.", - "format": "int32", - "nullable": true, - "example": 576000 - }, - "isBillableByDefault": { - "type": "boolean", - "description": "Whether project times should be billable by default.", - "nullable": true, - "example": true - }, - "projectTypeId": { - "type": "string", - "description": "The id of the project type of this project.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "color": { - "maxLength": 14, - "minLength": 0, - "type": "string", - "description": "The color of the project for display purposes in awork.\nThe supported colors are defined by the awork frontend.\nCan be null when no color assigned.", - "nullable": true, - "example": "purple" - }, - "deductNonBillableHours": { - "type": "boolean", - "description": "Whether to deduct non-billable hours from project budgets." - }, - "isProjectKeyVisible": { - "type": "boolean", - "description": "Whether project key should be visible for this project.\nIf null, it will use the workspace default setting.", - "nullable": true - }, - "projectStatusId": { - "type": "string", - "description": "Optional existing status to use when creating from a workflow or template source.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "projectTemplateId": { - "type": "string", - "description": "The id of the template which is used to create the project.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "publicProjectTemplateId": { - "type": "string", - "description": "The id of the public template which is used to create the project.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "workflowId": { - "type": "string", - "description": "The id of the workflow to link to the project.\nCannot be specified if ProjectTemplateId is set.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "referenceDateType": { - "enum": [ - "today", - "start", - "end", - "custom" - ], - "type": "string", - "description": "(optional, default = TODAY) Defines the starting date from which the reference date is calculated.\nThe reference date is the date from which the Start/DueOn date of a task is calculated, based on the ReferenceDateAnchor.", - "nullable": true - }, - "referenceDateAnchor": { - "enum": [ - "starts_on_reference_date", - "ends_on_reference_date" - ], - "type": "string", - "description": "(optional, default = START) Defines what the reference date represents for the schedule (start of first task or end of last task).", - "nullable": true - }, - "customReferenceDate": { - "type": "string", - "description": "(optional) The custom reference date when ReferenceDateType is set to 'custom'.", - "format": "date", - "nullable": true - }, - "projectKey": { - "maxLength": 32, - "minLength": 1, - "type": "string", - "description": "The project key to preserve from the external system." - } - }, - "additionalProperties": false, - "description": "Form for creating a project with a key supplied by an external system." - }, - "ImportedTaskPostForm": { - "required": [ - "baseType", - "name", - "taskNumber" - ], - "type": "object", - "properties": { - "name": { - "maxLength": 1000, - "minLength": 0, - "type": "string", - "description": "The name of the task. Max allowed length: 1000 characters.", - "example": "Create logo concept" - }, - "description": { - "type": "string", - "description": "The description of the task. Max allowed length: 25000 characters.", - "nullable": true, - "example": "We need to create a new impactful concept for the customer logo" - }, - "isPrio": { - "type": "boolean", - "description": "Whether this task is marked as priority.", - "nullable": true, - "example": true - }, - "startOn": { - "type": "string", - "description": "The expected start date and time of the task.", - "format": "date-time", - "nullable": true, - "example": "2023-03-03T17:00:00Z" - }, - "dueOn": { - "type": "string", - "description": "The expected due date and time of the task.", - "format": "date-time", - "nullable": true, - "example": "2023-03-18T17:00:00Z" - }, - "laneOrder": { - "type": "integer", - "description": "The lane order defines the vertical position in the task board.", - "format": "int32", - "nullable": true - }, - "plannedDuration": { - "type": "integer", - "description": "The expected planned workload of the task, in seconds.", - "format": "int32", - "nullable": true, - "example": 21600 - }, - "typeOfWorkId": { - "type": "string", - "description": "The id of the type of work for this task.\nIf not provided, defaults to the first type of work in the workspace.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "taskStatusId": { - "type": "string", - "description": "The id of the status for this task.\nIf not provided, defaults to the first status of type 'todo'.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "order": { - "type": "number", - "description": "The order of the task in a task status column.", - "format": "double", - "nullable": true, - "example": 3 - }, - "subtaskOrder": { - "type": "number", - "description": "The order of the subtask relative to its parent task.", - "format": "double", - "nullable": true, - "example": 1 - }, - "entityId": { - "type": "string", - "description": "The id of the entity the task is related to.\nFor private tasks, this is optional and will default to the current user's ID if not provided.\nFor project tasks, this is required and must be the project ID.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "baseType": { - "minLength": 1, - "enum": [ - "private", - "projecttask" - ], - "type": "string", - "description": "The base type of the task. Can be 'private' for a private task or 'projecttask' for a project task.", - "example": "projecttask" - }, - "parentId": { - "type": "string", - "description": "The id of the parent task. Setting this value means this is a subtask.", - "format": "uuid", - "nullable": true, - "example": "123e4567-e89b-12d3-a456-426614174000" - }, - "lists": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ListAssignment" - }, - "description": "The list(s) the new task should be added to.", - "nullable": true - }, - "taskNumber": { - "maximum": 1073741823, - "minimum": 1, - "type": "integer", - "description": "The positive task number to preserve from the external system.", - "format": "int32" - } - }, - "additionalProperties": false, - "description": "Form for creating a project task with a number supplied by an external system." - }, "InitialDashboardModel": { "type": "object", "properties": {