{
  "openapi": "3.0.1",
  "info": {
    "title": "Integration Json",
    "version": "Json"
  },
  "servers": [
    {
      "url": "https://{customerSubdomain}.smenso.cloud/skyisland",
      "description": "smenso",
      "variables": {
        "customerSubdomain": {
          "default": "demo",
          "description": "Add your workspace"
        }
      }
    }
  ],
  "paths": {
    "/api/integration/absence/json": {
      "get": {
        "tags": [
          "Absences"
        ],
        "summary": "Get all absences",
        "description": "Returns all absences from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetAbsences",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AbsenceExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"22f5137e-e1c6-4af0-86b0-4f8ce8ff1e14\",\n    \"absenceType\": \"Holidays paid\",\n    \"absenceTypeId\": \"7bda6b69-feb7-4406-b25d-1ebf2cdc3d6c\",\n    \"user\": \"A user\",\n    \"userId\": \"4e7823fe-db56-4e2a-ba20-bc05523774ee\",\n    \"approvers\": \"Approver A,Approver B\",\n    \"approverIds\": \"eafa34e4-e4a1-4fe6-a257-801bb8cd15d7,a43d6d77-c6ae-463f-80e8-76609938db82\",\n    \"startYear\": 2026,\n    \"endYear\": 2026,\n    \"startDate\": \"15.06.2026\",\n    \"endDate\": \"15.06.2026\",\n    \"duration\": 2400,\n    \"workdays\": 5.0,\n    \"startEndIndividual\": false,\n    \"startDateMinutes\": 480,\n    \"endDateMinutes\": 480,\n    \"status\": \"submitted\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Absences"
        ],
        "summary": "Create absences",
        "description": "Creates one or more absences in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateAbsences",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceCreateAbsences"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"absence\": [\n    {\n      \"userId\": \"someone@examplecompany.com\",\n      \"absenceTypeId\": \"Holiday\",\n      \"startDate\": \"12.06.2026\",\n      \"endDate\": \"15.06.2026\",\n      \"status\": \"submitted\",\n      \"locked\": false,\n      \"tempId\": 1,\n      \"externalId\": \"12345\",\n      \"comment\": \"Holidays\"\n    },\n    {\n      \"userId\": \"otherperson@examplecompany.com\",\n      \"absenceTypeId\": \"Holiday\",\n      \"startDate\": \"12.06.2026\",\n      \"endDate\": \"12.06.2026\",\n      \"status\": \"approved\",\n      \"locked\": false,\n      \"tempId\": 2,\n      \"externalId\": \"54321\",\n      \"startDateMinutes\": 240\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"9d2c7009-a0b7-41bb-bab4-98a96ec385b3\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"dec2f247-a71d-4c8c-9192-415906b0005c\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Absences"
        ],
        "summary": "Update absences",
        "description": "Updates one or more absences in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateAbsences",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceUpdateAbsences"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"absence\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"comment\": \"Holidays\",\n      \"absenceTypeId\": \"Holiday\",\n      \"startDate\": \"12.06.2026\",\n      \"endDate\": \"15.06.2026\",\n      \"status\": \"rejected\"\n    },\n    {\n      \"id\": \"51dd55fd-9ba5-4178-9c47-f0ed0b52f00a\",\n      \"useExternalId\": false,\n      \"absenceTypeId\": \"Holiday\",\n      \"startDate\": \"12.06.2026\",\n      \"endDate\": \"12.06.2026\",\n      \"startDateMinutes\": 240\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"d954573d-93f3-4265-abf4-3195d0fa1209\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"055bf89f-76da-4954-9634-bf39ad17fd8d\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/absence/json/{absenceId}": {
      "delete": {
        "tags": [
          "Absences"
        ],
        "summary": "Delete absence",
        "description": "Deletes the specified absence for the given absenceId. This operation is irreversible.",
        "operationId": "Integration.DeleteAbsence",
        "parameters": [
          {
            "name": "absenceId",
            "in": "path",
            "description": "The id of the absence to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the absence to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/json/{attachmentId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Download attachment",
        "description": "Downloads the binary content of the specified attachment.",
        "operationId": "Integration.DownloadAttachment",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment to get",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the attachment to get"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Attachments"
        ],
        "summary": "Delete attachment",
        "description": "Deletes the specified attachment for the given `attachmentId`. This operation is irreversible.",
        "operationId": "Integration.DeleteAttachment",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the attachment to delete"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/project/json": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "summary": "Upload project attachment",
        "description": "Uploads a file and links it to the specified entity.",
        "operationId": "Integration.UploadProjectAttachment",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file",
                  "projectId"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The attachment to upload",
                    "format": "binary"
                  },
                  "projectId": {
                    "type": "string",
                    "description": "The id of a project"
                  },
                  "name": {
                    "type": "string",
                    "description": "The displayname of the uploaded attachment"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "projectId": {
                  "style": "form"
                },
                "name": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentUpload"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"18a91698-9ac4-49f7-9cb4-9da11fac2623\",\n  \"name\": \"Sample.png\",\n  \"size\": 1024,\n  \"type\": \"png\",\n  \"uploadedById\": \"d3d8f57f-cc83-48de-831f-e775dd8c094e\",\n  \"uploadedBy\": \"someone@examplecompany.com\",\n  \"uploadedOn\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/project/json/{projectId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Get project attachments",
        "description": "Returns project attachments for the given `projectId` from the current workspace.",
        "operationId": "Integration.GetAttachmentsForProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of a project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a project"
            }
          },
          {
            "name": "projectOnly",
            "in": "query",
            "description": "All project attachments including task or status report attachments (true),\nor specifically only attachments directly attached to a project. \nDecide whether you want to get all attachments of a project, \nor only those attachments, that are linked to a project only (false).",
            "schema": {
              "type": "boolean",
              "description": "All project attachments including task or status report attachments (true),\nor specifically only attachments directly attached to a project. \nDecide whether you want to get all attachments of a project, \nor only those attachments, that are linked to a project only (false).",
              "default": true
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentInfo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/statusreport/json": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "summary": "Upload status report attachment",
        "description": "Uploads a file and links it to the specified entity.",
        "operationId": "Integration.UploadStatusReportAttachment",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file",
                  "statusReportId"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The attachment to upload",
                    "format": "binary"
                  },
                  "statusReportId": {
                    "type": "string",
                    "description": "The id of a status report"
                  },
                  "name": {
                    "type": "string",
                    "description": "The displayname of the uploaded attachment"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "statusReportId": {
                  "style": "form"
                },
                "name": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentUpload"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"560fea9d-8a2f-4221-a7b9-43970cb1d75d\",\n  \"name\": \"Sample.png\",\n  \"size\": 1024,\n  \"type\": \"png\",\n  \"uploadedById\": \"caa6ae70-bf3c-48bb-b558-f2e2174099e3\",\n  \"uploadedBy\": \"someone@examplecompany.com\",\n  \"uploadedOn\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/statusreport/json/{statusReportId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Get status report attachments",
        "description": "Returns status report attachments for the given `statusReportId` from the current workspace.",
        "operationId": "Integration.GetAttachmentsForStatusReport",
        "parameters": [
          {
            "name": "statusReportId",
            "in": "path",
            "description": "The id of a status report",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a status report"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentInfo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/task/json": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "summary": "Upload task attachment",
        "description": "Uploads a file and links it to the specified entity.",
        "operationId": "Integration.UploadTaskAttachment",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file",
                  "taskId"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The attachment to upload",
                    "format": "binary"
                  },
                  "taskId": {
                    "type": "string",
                    "description": "The id of a task"
                  },
                  "name": {
                    "type": "string",
                    "description": "The displayname of the uploaded attachment"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "taskId": {
                  "style": "form"
                },
                "name": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentUpload"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"8cb85919-cb43-48ed-931e-45606cfa3cb4\",\n  \"name\": \"Sample.png\",\n  \"size\": 1024,\n  \"type\": \"png\",\n  \"uploadedById\": \"d37d0220-f797-4939-b516-64cf9acb7a0a\",\n  \"uploadedBy\": \"someone@examplecompany.com\",\n  \"uploadedOn\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/attachment/task/json/{taskId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Get task attachments",
        "description": "Returns task attachments for the given `taskId` from the current workspace.",
        "operationId": "Integration.GetAttachmentsForTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The id of a task",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a task"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentInfo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/comment/json/{commentId}": {
      "get": {
        "tags": [
          "Comments"
        ],
        "summary": "Get comment",
        "description": "Returns a comment for the given `commentId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetComment",
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "The id of the comment to get",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the comment to get"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentExportItem"
                },
                "examples": {
                  "Task example": {
                    "value": "{\n  \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"taskId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"createdBy\": \"someone@examplecompany.com\",\n  \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"dateCreated\": \"06/11/2026 13:06:58 +00:00\",\n  \"dateUpdated\": \"06/12/2026 13:06:58 +00:00\",\n  \"text\": \"My comment\",\n  \"textHtml\": \"<p>My comment</p>\",\n  \"isInternal\": \"false\"\n}"
                  },
                  "Status report example": {
                    "value": "{\n  \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"statusReportId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"createdBy\": \"someone@examplecompany.com\",\n  \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"dateCreated\": \"06/11/2026 13:06:58 +00:00\",\n  \"dateUpdated\": \"06/12/2026 13:06:58 +00:00\",\n  \"text\": \"My comment\",\n  \"textHtml\": \"<p>My comment</p>\",\n  \"isInternal\": \"false\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Comments"
        ],
        "summary": "Delete comment",
        "description": "Deletes the specified comment for the given `commentId`. This operation is irreversible.",
        "operationId": "Integration.DeleteComment",
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "The id of the comment to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the comment to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/comment/statusreport/json": {
      "post": {
        "tags": [
          "Comments"
        ],
        "summary": "Create comments for status reports",
        "description": "Creates one or more comments in bulk for status reports based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateStatusReportComments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusReportCommentCreateComments"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"comment\": [\n    {\n      \"statusReportId\": \"631c2f06-75d1-42e3-9869-f07d66f600d8\",\n      \"tempId\": 1,\n      \"text\": \"A first comment\",\n      \"isInternal\": true\n    },\n    {\n      \"statusReportId\": \"e536aaf5-0260-4367-b4f4-4c0e05e35065\",\n      \"tempId\": 2,\n      \"text\": \"A second comment\",\n      \"isInternal\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"4e426b54-9ae3-4e0f-8bf6-eb7680d54ea6\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"2123e58e-3b2b-49c6-ba77-e5a45007f348\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Comments"
        ],
        "summary": "Update comments for status reports",
        "description": "Updates one or more comments in bulk for status reports based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateStatusReportComments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentUpdateComments"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"comment\": [\n    {\n      \"id\": \"cc03be7b-05bf-484f-a036-13c8af86bd18\",\n      \"text\": \"A first changed text\"\n    },\n    {\n      \"id\": \"2564bef2-de13-44d3-a1dc-2581308ebc0d\",\n      \"text\": \"A second changed text\",\n      \"isInternal\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"2f2dd31e-4fc4-4769-a7ef-db03585d8f46\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"eac8891c-e34b-4895-b0ba-5fcf35372ecb\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/comment/statusreport/json/{statusReportId}": {
      "get": {
        "tags": [
          "Comments"
        ],
        "summary": "Get comments for a status report",
        "description": "Returns comments for a status report for the given `statusReportId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetStatusReportComments",
        "parameters": [
          {
            "name": "statusReportId",
            "in": "path",
            "description": "The id of the statusreport",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the statusreport"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CommentExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"statusReportId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"createdBy\": \"someone@examplecompany.com\",\n    \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"dateCreated\": \"06/11/2026 13:06:58 +00:00\",\n    \"dateUpdated\": \"06/12/2026 13:06:58 +00:00\",\n    \"text\": \"A second comment\",\n    \"textHtml\": \"<p>My second comment</p>\",\n    \"isInternal\": \"false\"\n  },\n  {\n    \"id\": \"a5fd5031-9c9b-43f2-8ca0-4f99884e9621\",\n    \"statusReportId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"createdBy\": \"someone@examplecompany.com\",\n    \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"dateCreated\": \"06/09/2026 13:06:58 +00:00\",\n    \"dateUpdated\": \"06/10/2026 13:06:58 +00:00\",\n    \"text\": \"A first comment\",\n    \"textHtml\": \"<p>My first comment</p>\",\n    \"isInternal\": \"false\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/comment/task/json": {
      "post": {
        "tags": [
          "Comments"
        ],
        "summary": "Create task comments",
        "description": "Creates one or more comments in bulk for tasks based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateTaskComments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskCommentCreateComments"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"comment\": [\n    {\n      \"taskId\": \"1b7c9c1a-ab7f-4341-b18f-3bba9e24069e\",\n      \"tempId\": 1,\n      \"text\": \"A first comment\",\n      \"isInternal\": true\n    },\n    {\n      \"taskId\": \"9cef538a-bf30-4e73-84bc-09b39e7b0ff8\",\n      \"tempId\": 2,\n      \"text\": \"A second comment\",\n      \"isInternal\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"9cead328-c6c1-448f-a160-0ee7d58dea1a\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"5df56bad-7f3d-417e-b790-776b3ff6ceb2\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Comments"
        ],
        "summary": "Update task comments",
        "description": "Updates one or more comments in bulk for tasks based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateTaskComments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentUpdateComments"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"comment\": [\n    {\n      \"id\": \"c2d839d0-c940-4256-bcbf-37cacf43bb95\",\n      \"text\": \"A first changed text\"\n    },\n    {\n      \"id\": \"872fe7e3-fdec-4021-b175-e8e9571d032e\",\n      \"text\": \"A second changed text\",\n      \"isInternal\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"624f266e-9fb6-47fc-917c-d7e3f05f38c2\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"107f93cc-f06a-4cd9-a7d7-bd61b22bbbeb\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/comment/task/json/{taskId}": {
      "get": {
        "tags": [
          "Comments"
        ],
        "summary": "Get task comments",
        "description": "Returns task comments for the given `taskId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetTaskComments",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The id of the task",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the task"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CommentExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"taskId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"createdBy\": \"someone@examplecompany.com\",\n    \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"dateCreated\": \"06/11/2026 13:06:58 +00:00\",\n    \"dateUpdated\": \"06/12/2026 13:06:58 +00:00\",\n    \"text\": \"A second comment\",\n    \"textHtml\": \"<p>My second comment</p>\",\n    \"isInternal\": \"false\"\n  },\n  {\n    \"id\": \"a5fd5031-9c9b-43f2-8ca0-4f99884e9621\",\n    \"taskId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"createdBy\": \"someone@examplecompany.com\",\n    \"createdById\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    \"dateCreated\": \"06/09/2026 13:06:58 +00:00\",\n    \"dateUpdated\": \"06/10/2026 13:06:58 +00:00\",\n    \"text\": \"A first comment\",\n    \"textHtml\": \"<p>My first comment</p>\",\n    \"isInternal\": \"false\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/flavor/json": {
      "get": {
        "tags": [
          "Flavors"
        ],
        "summary": "Get flavors",
        "description": "Returns flavors from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetFlavors",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlavorExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"882cd93f-36cf-41aa-b83a-e322a0414727\",\n    \"title\": \"Nutzenrevision\",\n    \"type\": 0,\n    \"typeName\": \"Label\",\n    \"isMandatory\": false,\n    \"visible\": true,\n    \"hideForGuests\": false,\n    \"showInAvatarDetail\": false,\n    \"locked\": false,\n    \"lockedEditValue\": false\n  },\n  {\n    \"id\": \"a98aceb9-f61f-4d3e-ab0a-1a7890a82242\",\n    \"title\": \"Meilensteinplan-Auswahl\",\n    \"type\": 10,\n    \"typeName\": \"List\",\n    \"isMandatory\": false,\n    \"visible\": true,\n    \"hideForGuests\": false,\n    \"showInAvatarDetail\": false,\n    \"locked\": false,\n    \"lockedEditValue\": false\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/flavor/json/{flavorId}": {
      "delete": {
        "tags": [
          "Flavors"
        ],
        "summary": "Delete flavor",
        "description": "Deletes the specified flavor for the given `flavorId`. This operation is irreversible.",
        "operationId": "Integration.DeleteFlavor",
        "parameters": [
          {
            "name": "flavorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/folders/json": {
      "post": {
        "tags": [
          "Folders"
        ],
        "summary": "Create folders",
        "description": "Creates one or more folders for the given `projectId` in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateFolders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderCreateFolders"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"projectId\": \"24b866df-56fa-4408-821c-4903cbaef292\",\n  \"folder\": [\n    {\n      \"name\": \"A first new Folder\",\n      \"priority\": \"high\",\n      \"color\": \"#FF0000\",\n      \"fillRowWithColor\": true\n    },\n    {\n      \"name\": \"A second new Folder\",\n      \"priority\": \"low\",\n      \"startDate\": \"12.06.2026 13:06:58\",\n      \"endDate\": \"19.06.2026 13:06:58\",\n      \"color\": \"#00FF00\",\n      \"noNewTasksAllowed\": true,\n      \"locked\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"c149ac38-bb1f-4aa8-b5eb-43ecb1d16d7b\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"84c57117-5be4-4e72-871d-b78a1d8cdf4a\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Folders"
        ],
        "summary": "Update folders",
        "description": "Updates one or more folders for the given `projectId` in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateFolders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderUpdateFolders"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"projectId\": \"bd47dc10-f8ff-43c8-9e0f-c10659759fab\",\n  \"folder\": [\n    {\n      \"id\": \"78bf7e3c-d861-4275-838e-2681d2462b40\",\n      \"name\": \"A new name\",\n      \"priority\": \"medium\",\n      \"startDate\": \"12.06.2026 13:06:58\",\n      \"endDate\": \"19.06.2026 13:06:58\",\n      \"fillRowWithColor\": true,\n      \"noNewTasksAllowed\": true,\n      \"locked\": true\n    },\n    {\n      \"id\": \"0b587236-d70f-4753-95ba-b0ee69241dab\",\n      \"name\": \"And a new name for this folder\",\n      \"priority\": \"highest\",\n      \"fillRowWithColor\": true,\n      \"noNewTasksAllowed\": true,\n      \"locked\": false\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"1bcb221f-0e3c-409e-93eb-51bdb6bc90af\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"4d8ddfaa-bec1-435b-923a-958a5a0d515d\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/folders/json/{projectId}": {
      "get": {
        "tags": [
          "Folders"
        ],
        "summary": "Get folders",
        "description": "Returns folders for the given `projectId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetFoldersForProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the project"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FolderExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"41823537-61cd-4e04-b436-2ff3164faafd\",\n    \"name\": \"Folder one\",\n    \"startDate\": \"12.06.2026\",\n    \"endDate\": \"19.06.2026\",\n    \"description\": \"This is folder one\",\n    \"color\": \"#FF0000\",\n    \"fillRowWithColor\": true,\n    \"taskTemplateId\": \"12e05151-e317-49e8-b317-a30734961c43\",\n    \"noNewTasksAllowed\": false,\n    \"assignNewTasksToCreator\": false,\n    \"lockNewTasks\": false,\n    \"privateNewTasks\": false,\n    \"locked\": false\n  },\n  {\n    \"id\": \"681b7516-a512-4921-b146-372ce3ae9e89\",\n    \"name\": \"Folder two\",\n    \"priority\": 2,\n    \"fillRowWithColor\": false,\n    \"noNewTasksAllowed\": false,\n    \"assignNewTasksToCreator\": true,\n    \"lockNewTasks\": true,\n    \"usersWithAccess\": \"someone@examplecompany.com\",\n    \"usersWithAccessIds\": \"032296db-c8fa-4a10-8a1a-1e539b962e8d\",\n    \"teamsWithAccess\": \"Team One\",\n    \"teamsWithAccessIds\": \"687f1f8a-2ece-481a-bb0f-95d51b83670b\",\n    \"privateNewTasks\": false,\n    \"locked\": false\n  },\n  {\n    \"id\": \"f619b4f0-7e31-4e60-be8a-c09de21af534\",\n    \"name\": \"Folder three\",\n    \"priority\": 2,\n    \"fillRowWithColor\": false,\n    \"noNewTasksAllowed\": false,\n    \"assignNewTasksToCreator\": true,\n    \"lockNewTasks\": false,\n    \"privateNewTasks\": true,\n    \"usersWithPrivateAccess\": \"someone@examplecompany.com\",\n    \"usersWithPrivateAccessIds\": \"b92652c8-0bf5-4952-beb7-2f88e1604603\",\n    \"teamsWithPrivateAccess\": \"Team One\",\n    \"teamsWithPrivateAccessIds\": \"cff6d01d-2b02-4d4f-b854-3c66c11ff67c\",\n    \"locked\": false\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/folders/json/{projectId}/{folderId}": {
      "delete": {
        "tags": [
          "Folders"
        ],
        "summary": "Delete folder",
        "description": "Deletes the specified folder for the given `projectId`, `folderId`. This operation is irreversible.",
        "operationId": "Integration.DeleteFolder",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the project"
            }
          },
          {
            "name": "folderId",
            "in": "path",
            "description": "The id of the folder to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the folder to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/project/access/json/{projectId}": {
      "post": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Set project access",
        "description": "Adds or removes access restrictions for the specified entity. Use the `add` and `remove` sections to grant or revoke access for users and teams.",
        "operationId": "Integration.ModifyProjectAccessData",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModifyProjectAccessData"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"add\": {\n    \"users\": \"someone@examplecompany.com\",\n    \"teams\": \"Team One,Team Two\"\n  },\n  \"remove\": {\n    \"users\": \"otherperson@examplecompany.com\",\n    \"teams\": \"Team Three\"\n  }\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Delete project access",
        "description": "Deletes the specified permission / access restriction for the given `projectId`. This operation is irreversible.",
        "operationId": "Integration.RemoveProjectAccessRestrictions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/project/json/{projectId}": {
      "get": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Get project permission / privacy settings",
        "description": "Returns project permission / privacy settings for the given `projectId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetProjectPermissions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectPermissionExportItem"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"projectId\": \"f5566054-28b4-4230-8770-d1148787e87a\",\n  \"isLocked\": true,\n  \"isPrivate\": true,\n  \"lockedBy\": \"A user\",\n  \"lockedById\": \"548b7476-da98-422b-8d92-2c3f0a8f172c\",\n  \"privateUsers\": \"A user\",\n  \"privateUserIds\": \"548b7476-da98-422b-8d92-2c3f0a8f172c\",\n  \"privateTeams\": \"Team 1, Team 2\",\n  \"privateTeamIds\": \"e7dd6534-3e00-4a1b-84c2-066e6dfe37dc,0d46e032-130c-407c-b435-262e7678d85f\",\n  \"canUpdateUsers\": \"A user\",\n  \"canUpdateUserIds\": \"7759f05a-3bd8-4312-a9bd-d03706743ad1\",\n  \"readOnlyTeams\": \"Team 1, Team2\",\n  \"readOnlyTeamIds\": \"e7dd6534-3e00-4a1b-84c2-066e6dfe37dc,0d46e032-130c-407c-b435-262e7678d85f\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/project/private/json/{projectId}": {
      "post": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Set project privacy",
        "description": "Adds or removes access restrictions for the specified entity. Use the `add` and `remove` sections to grant or revoke access for users and teams.",
        "operationId": "Integration.SetProjectPrivate",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModifyProjectAccessData"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"add\": {\n    \"users\": \"someone@examplecompany.com\",\n    \"teams\": \"Team One,Team Two\"\n  },\n  \"remove\": {\n    \"users\": \"otherperson@examplecompany.com\",\n    \"teams\": \"Team Three\"\n  }\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Delete project privacy",
        "description": "Deletes the specified permission / access restriction for the given `projectId`. This operation is irreversible.",
        "operationId": "Integration.PrivacyPermissions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/task/access/json/{taskId}": {
      "post": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Set task access",
        "description": "Adds or removes access restrictions for the specified entity. Use the `add` and `remove` sections to grant or revoke access for users and teams.",
        "operationId": "Integration.ModifyTaskAccess",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModifyTaskAccessData"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"add\": {\n    \"users\": \"someone@examplecompany.com\",\n    \"teams\": \"Team One,Team Two\"\n  },\n  \"remove\": {\n    \"users\": \"otherperson@examplecompany.com\",\n    \"teams\": \"Team Three\"\n  }\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Delete task access",
        "description": "Deletes the specified permission / access restriction for the given `taskId`. This operation is irreversible.",
        "operationId": "Integration.RemoveTaskAccessRestrictions",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          },
          {
            "name": "includeSubtasks",
            "in": "query",
            "description": "Include sub taks",
            "schema": {
              "type": "boolean",
              "description": "Include sub taks",
              "default": true
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/task/json/{taskId}": {
      "get": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Get task permission / privacy settings",
        "description": "Returns task permission / privacy settings for the given `taskId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetTaskPermissions",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskPermissionExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"taskId\": \"9f947799-e7b3-44a7-9145-259c90a1fd0c\",\n    \"isLocked\": true,\n    \"isPrivate\": true,\n    \"lockedBy\": \"A user\",\n    \"lockedById\": \"c24822ea-35df-463e-9651-6cbd4a901c31\",\n    \"privateUsers\": \"A user\",\n    \"privateUserIds\": \"c24822ea-35df-463e-9651-6cbd4a901c31\",\n    \"privateTeams\": \"Team 1, Team 2\",\n    \"privateTeamIds\": \"82edb3c9-a594-4da8-afd0-388d64c16352,f14b7f53-3d52-460c-9322-f5d4922df2a5\",\n    \"canUpdateUsers\": \"A user\",\n    \"canUpdateUserIds\": \"7759f05a-3bd8-4312-a9bd-d03706743ad1\",\n    \"readOnlyTeams\": \"Team 1, Team2\",\n    \"readOnlyTeamIds\": \"82edb3c9-a594-4da8-afd0-388d64c16352,f14b7f53-3d52-460c-9322-f5d4922df2a5\"\n  },\n  {\n    \"taskId\": \"5fd45389-7221-43ca-b9ca-7e5f070b5483\",\n    \"isLocked\": true,\n    \"isPrivate\": true,\n    \"lockedBy\": \"A user\",\n    \"lockedById\": \"c24822ea-35df-463e-9651-6cbd4a901c31\",\n    \"privateUsers\": \"A user\",\n    \"privateUserIds\": \"c24822ea-35df-463e-9651-6cbd4a901c31\",\n    \"privateTeams\": \"Team 1, Team 2\",\n    \"privateTeamIds\": \"82edb3c9-a594-4da8-afd0-388d64c16352,f14b7f53-3d52-460c-9322-f5d4922df2a5\",\n    \"canUpdateUsers\": \"A user\",\n    \"canUpdateUserIds\": \"7759f05a-3bd8-4312-a9bd-d03706743ad1\",\n    \"readOnlyTeams\": \"Team 1, Team2\",\n    \"readOnlyTeamIds\": \"82edb3c9-a594-4da8-afd0-388d64c16352,f14b7f53-3d52-460c-9322-f5d4922df2a5\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/permissions/task/private/json/{taskId}": {
      "post": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Set task privacy",
        "description": "Adds or removes access restrictions for the specified entity. Use the `add` and `remove` sections to grant or revoke access for users and teams.",
        "operationId": "Integration.SetTaskPrivate",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Privacy / Permissions"
        ],
        "summary": "Delete task privacy",
        "description": "Deletes the specified permission / access restriction for the given `taskId`. This operation is irreversible.",
        "operationId": "Integration.RemoveTaskPrivateRestrictions",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/project/json": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get projects",
        "description": "Returns projects from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetProjects",
        "parameters": [
          {
            "name": "projectIds",
            "in": "query",
            "description": "Project ids divided by a comma",
            "schema": {
              "type": "string",
              "description": "Project ids divided by a comma"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          },
          {
            "name": "viewId",
            "in": "query",
            "description": "The view id to use",
            "schema": {
              "type": "string",
              "description": "The view id to use"
            }
          },
          {
            "name": "includeTagsInArchived",
            "in": "query",
            "description": "The include tags in archived project",
            "schema": {
              "type": "boolean",
              "description": "The include tags in archived project"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create projects",
        "description": "Creates one or more projects in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateProjects",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCreateProjects"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"externalIdReference\": \"Flavor:External Id\",\n  \"project\": [\n    {\n      \"title\": \"A new project\",\n      \"phaseId\": 1,\n      \"typeId\": 1,\n      \"tempId\": 1,\n      \"description\": \"\",\n      \"departmentId\": 1,\n      \"locationId\": 1,\n      \"statusId\": 1,\n      \"workflowId\": 1,\n      \"hourlyRate\": 80.0,\n      \"usePersonalHourlyRates\": false,\n      \"blockTimeRecording\": false\n    },\n    {\n      \"title\": \"A second new project\",\n      \"phaseId\": 1,\n      \"typeId\": 1,\n      \"tempId\": 2,\n      \"description\": \"\",\n      \"departmentId\": 1,\n      \"locationId\": 1,\n      \"statusId\": 1,\n      \"workflowId\": 1,\n      \"hourlyRate\": 80.0,\n      \"usePersonalHourlyRates\": false,\n      \"blockTimeRecording\": false,\n      \"flavor\": [\n        {\n          \"target\": \"External Id\",\n          \"value\": \"12345\"\n        }\n      ]\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"b2d255d2-9d14-41a3-a13e-357c486cfea1\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"c30efd39-80bf-45c1-90a4-d7d12a8e1000\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update projects",
        "description": "Updates one or more projects in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateProjects",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdateProjects"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"externalIdReference\": \"Flavor:External Id\",\n  \"project\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"title\": \"A project\",\n      \"description\": \"A new description\",\n      \"hourlyRate\": 0.0,\n      \"usePersonalHourlyRates\": true,\n      \"blockTimeRecording\": true\n    },\n    {\n      \"id\": \"1f532515-5fad-4423-a86b-e7e110fceb70\",\n      \"useExternalId\": false,\n      \"title\": \"A second project\",\n      \"description\": \"A new description\",\n      \"hourlyRate\": 0.0,\n      \"usePersonalHourlyRates\": true,\n      \"blockTimeRecording\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"e5a13f31-606c-4f0c-b2da-d9395c960219\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"1e92d0bb-285c-4abf-89ad-ee2a5c7de5e6\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/project/json/{projectId}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get project",
        "description": "Returns a project for the given `projectId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of a project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a project"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          },
          {
            "name": "viewId",
            "in": "query",
            "description": "The view id to use",
            "schema": {
              "type": "string",
              "description": "The view id to use"
            }
          },
          {
            "name": "includeTagsInArchived",
            "in": "query",
            "description": "The include tags in archived project",
            "schema": {
              "type": "boolean",
              "description": "The include tags in archived project"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Projects"
        ],
        "summary": "Delete project",
        "description": "Deletes the specified project for the given `projectId`. This operation is irreversible.",
        "operationId": "Integration.DeleteProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the project to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/project/json/{templateId}": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create project from a template",
        "description": "Creates a new project based on the given `templateId`.",
        "operationId": "Integration.CreateProjectFromTemplate",
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "description": "The id of the template to use",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the template to use"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectFromTemplate"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"title\": \"A new project\",\n  \"folder\": \"A folder\",\n  \"projectType\": \"A project type\",\n  \"isPrivate\": false,\n  \"startDate\": \"12.06.2026 13:06:58\",\n  \"statusId\": 4,\n  \"code\": \"APR\",\n  \"options\": {\n    \"startDate\": false,\n    \"adjustTaskDates\": true,\n    \"tasks\": true,\n    \"flavors\": true,\n    \"labels\": true,\n    \"manager\": false,\n    \"tasksWorkflow\": true,\n    \"tasksTemplate\": true,\n    \"folderTasksTemplate\": true,\n    \"viewSettings\": true,\n    \"budget\": true,\n    \"location\": true,\n    \"description\": false,\n    \"hourlyRate\": true,\n    \"goal\": true,\n    \"benefit\": true,\n    \"observers\": true,\n    \"permissions\": true,\n    \"blockTimeRecording\": true,\n    \"markedColumns\": true,\n    \"columnDescriptions\": true\n  }\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFromTemplateResult"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"cfe6975c-1282-47f7-9fd7-f94ecb844bd2\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update master data of a project",
        "description": "Updates the specified project based on the given `templateId`.",
        "operationId": "Integration.UpdateMasterdataFromTemplateInProject",
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "description": "The id of the template to use",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the template to use"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyTemplateToProject"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"342b1170-ef0c-494c-af9d-a5c9304e6b3f\",\n  \"overwriteValues\": true,\n  \"startDate\": true,\n  \"endDate\": true,\n  \"flavors\": true,\n  \"flavorGroupsLockStatus\": true,\n  \"labels\": true,\n  \"manager\": false,\n  \"budget\": true,\n  \"location\": true,\n  \"description\": false,\n  \"goal\": true,\n  \"benefit\": false,\n  \"icon\": false,\n  \"files\": false\n}"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/project/json/archive/{projectId}": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Archive project",
        "description": "Archives the specified project so it no longer appears in active project lists. The project and its data remain available and can be restored with the unarchive endpoint.",
        "operationId": "Integration.ArchiveProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project to archive",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the project to archive"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"26ff6012-d3c2-4d21-b7d1-6815401a2f17\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorExample"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/project/json/unarchive/{projectId}": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Unarchive project",
        "description": "Restores an archived project so it appears in active project lists again.",
        "operationId": "Integration.UnarchiveProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project to unarchive",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the project to unarchive"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"f8cfefc6-131c-41ac-8462-796a7240d90d\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorExample"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/absencetype/json": {
      "post": {
        "tags": [
          "Settings"
        ],
        "summary": "Create absence types",
        "description": "Creates one or more absence types in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateAbsenceType",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceTypeCreateAbsenceTypes"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"absenceType\": [\n    {\n      \"title\": \"Holidays\",\n      \"type\": \"limited\",\n      \"tempId\": 1,\n      \"externalId\": \"12345\",\n      \"icon\": \"twitter\",\n      \"iconPrefix\": \"fab\",\n      \"isApprovalNecessary\": true,\n      \"includeInHolidaysOverview\": true,\n      \"yearlyBudget\": 30.0,\n      \"recommendedApprovers\": \"someone@examplecompany.com\"\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"4886b814-0fd7-4078-839d-e96609afb2c2\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"ff00d18a-9876-45a0-a13f-c6fc88a7db65\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Update absence types",
        "description": "Updates one or more absence types in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateAbsenceType",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceTypeUpdateAbsenceTypes"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"absenceType\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"title\": \"Unlimited holidays\",\n      \"icon\": \"twitter\",\n      \"iconPrefix\": \"fab\",\n      \"type\": \"unlimited\",\n      \"isApprovalNecessary\": true,\n      \"includeInHolidaysOverview\": false,\n      \"recommendedApprovers\": \"someone@examplecompany.com\"\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"d6c1f0b4-b9fb-49d2-a8d7-c29c0abd53ee\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"df76cf7b-e894-4557-bbf2-6464b5da5c7f\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/absencetype/json/{absenceTypeId}": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get absence type",
        "description": "Returns absence type for the given absenceTypeId from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetAbsenceType",
        "parameters": [
          {
            "name": "absenceTypeId",
            "in": "path",
            "description": "The id of the absencetype to get",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the absencetype to get"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbsenceTypeExportItem"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"010c836d-de01-4a3a-b615-08cdfbe98c1c\",\n  \"title\": \"Holidays\",\n  \"type\": \"limited\",\n  \"isApprovalNecessary\": false,\n  \"includeInHolidaysOverview\": true,\n  \"yearlyBudget\": 3000.0,\n  \"color\": \"#1BD17A\",\n  \"icon\": \"twitter\",\n  \"iconPrefix\": \"fab\",\n  \"recommendedApprovers\": \"someone@examplecompany.com\",\n  \"recommendedApproversIds\": \"cf2d65a4-7bbd-49b4-aca3-703e9d7acca4\",\n  \"recommendedApprovingTeams\": \"Team One\",\n  \"recommendedApprovingTeamsIds\": \"41483175-55d3-4f7d-b269-19ef06ef42d8\",\n  \"createdBy\": \"HR Manager\",\n  \"createdById\": \"60c4ba09-f28f-482e-b326-d57ff479f05d\",\n  \"dateCreated\": \"04.07.2023 14:55:13\",\n  \"updatedBy\": \"HR Member\",\n  \"updatedById\": \"fe8c7ea4-cebb-4c15-b040-061774b51c45\",\n  \"dateUpdated\": \"20.02.2025 10:50:34\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Settings"
        ],
        "summary": "Delete absence type",
        "description": "Deletes the specified absence type for the given absenceTypeId. This operation is irreversible.",
        "operationId": "Integration.DeleteAbsenceType",
        "parameters": [
          {
            "name": "absenceTypeId",
            "in": "path",
            "description": "The id of the absencetype to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the absencetype to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/absencetypes/json": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get absence types",
        "description": "Returns absence types from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetAbsenceTypes",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AbsenceTypeExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"b0aea47b-c635-4424-950f-335d24d25e81\",\n    \"title\": \"Holidays\",\n    \"type\": \"limited\",\n    \"isApprovalNecessary\": false,\n    \"includeInHolidaysOverview\": true,\n    \"yearlyBudget\": 3000.0,\n    \"color\": \"#1BD17A\",\n    \"icon\": \"twitter\",\n    \"iconPrefix\": \"fab\",\n    \"recommendedApprovers\": \"someone@examplecompany.com\",\n    \"recommendedApproversIds\": \"3f970da6-57ee-48ea-9ceb-342dcdd03600\",\n    \"recommendedApprovingTeams\": \"Team One,Team Two\",\n    \"recommendedApprovingTeamsIds\": \"21183b95-1656-4f80-a6f0-a734331f1c70,09d45a72-240e-48f4-b220-1398a4c6aa9e\",\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"72d1dc6e-75b5-40a6-9b5d-68e7a228be11\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"683fd84a-f584-44c6-a38c-04b89029053a\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  },\n  {\n    \"id\": \"401c36d1-50a5-46e4-a89f-004cf605dfdc\",\n    \"title\": \"Sick\",\n    \"type\": \"unlimited\",\n    \"isApprovalNecessary\": false,\n    \"includeInHolidaysOverview\": true,\n    \"yearlyBudget\": 0.0,\n    \"color\": \"#7C4DFF\",\n    \"icon\": \"stethoscope\",\n    \"iconPrefix\": \"\",\n    \"recommendedApprovers\": \"someone@examplecompany.com\",\n    \"recommendedApproversIds\": \"311e19c4-6b57-4c01-9557-a2f950ee9dad\",\n    \"recommendedApprovingTeams\": \"Team One,Team Two\",\n    \"recommendedApprovingTeamsIds\": \"d82f2ff1-c720-4617-a817-d44deb505a5b,157f7a12-ab3a-4561-b088-ad5562088264\",\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"56e201cb-8cb5-4ee1-beec-2740d58badab\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"4d2e99e7-5a39-4286-945e-b48898a33d00\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  }\n]"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/member/json": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get member settings",
        "description": "Returns member settings from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetMember",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AbsenceTypeExportItem"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"flavors\": {\n    \"flavor:Flavor A\": \"1245\",\n    \"flavor:Flavor B\": \"564\"\n  },\n  \"id\": \"6278c1e9-3da2-43e3-8c40-b27d3d00dab8\",\n  \"userId\": \"a0dc0baa-0cd3-4443-a5fa-adba25f32396\",\n  \"email\": \"someone@examplecompany.com\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Update member settings",
        "description": "Updates one or more member settings in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateMember",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberUpdateMembers"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"member\": [\n    {\n      \"id\": \"someone@examplecompany.com\",\n      \"flavor\": [\n        {\n          \"target\": \"MemberFlavor\",\n          \"value\": \"12345\"\n        }\n      ]\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"c43f90b2-c9af-4340-a5ca-6a27d4907ea1\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"7635c405-ca91-472c-9cdd-3d48cff00a6e\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/member/workingtime/json": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get working times",
        "description": "Returns working times from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetAllMemberWorkingTime",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberWorkingTimeExportItem"
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"userCapacitySettingsId\": \"fbf86a1d-1905-48bb-81f9-64026ed7858b\",\n    \"dailyCapacityId\": \"5232181f-653b-4730-90a4-4e54fa620fe2\",\n    \"userId\": \"929d9eba-bcc8-48d7-9084-213107ddb658\",\n    \"email\": \"someone@examplecompany.com\",\n    \"externalId\": \"12345\",\n    \"startDate\": \"06/08/2026\",\n    \"endDate\": \"06/12/2026\",\n    \"monday\": 480,\n    \"tuesday\": 480,\n    \"wednesday\": 480,\n    \"thursday\": 480,\n    \"friday\": 480,\n    \"saturday\": 0,\n    \"sunday\": 0,\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"3789178b-2c53-41b0-900b-6d63970cb563\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"c80b8b66-29ba-4a60-8cfa-a789037044d1\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  },\n  {\n    \"userCapacitySettingsId\": \"fbf86a1d-1905-48bb-81f9-64026ed7858b\",\n    \"dailyCapacityId\": \"df13c547-3f27-4659-a098-2662610cd2bd\",\n    \"userId\": \"929d9eba-bcc8-48d7-9084-213107ddb658\",\n    \"email\": \"someone@examplecompany.com\",\n    \"externalId\": \"67890\",\n    \"startDate\": \"06/15/2026\",\n    \"endDate\": \"06/19/2026\",\n    \"monday\": 240,\n    \"tuesday\": 240,\n    \"wednesday\": 240,\n    \"thursday\": 240,\n    \"friday\": 240,\n    \"saturday\": 0,\n    \"sunday\": 0,\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"a58e9011-2d76-4795-ac84-2b7ec2d2b275\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"968b067f-72f3-409e-a740-db9205a23f1c\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "summary": "Create working times",
        "description": "Creates one or more working times in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateMemberWorkingTime",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberWorkingTimeCreateMemberWorkingTimes"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"memberWorkingTime\": [\n    {\n      \"userId\": \"someone@examplecompany.com\",\n      \"tempId\": 1,\n      \"externalId\": \"12345\",\n      \"startDate\": \"08.06.2026\",\n      \"endDate\": \"12.06.2026\",\n      \"mondayCapacity\": 480,\n      \"tuesdayCapacity\": 480,\n      \"wednesdayCapacity\": 480,\n      \"thursdayCapacity\": 480,\n      \"fridayCapacity\": 480\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"abe09f92-0b9d-42e1-a7a2-a2c61a66fa86\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"b4f26683-bbc9-4e10-8fec-3794c67f3c21\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Update working times",
        "description": "Updates one or more working times in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateMemberWorkingTime",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberWorkingTimeUpdateMemberWorkingTimes"
              },
              "examples": {
                "Example id": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"memberWorkingTime\": [\n    {\n      \"id\": \"beacf9ed-27ab-4001-84d8-4dfa302e0eb8\",\n      \"useExternalId\": false,\n      \"mondayCapacity\": 480,\n      \"tuesdayCapacity\": 480,\n      \"wednesdayCapacity\": 480,\n      \"thursdayCapacity\": 480,\n      \"fridayCapacity\": 480,\n      \"startDate\": \"08.06.2026\",\n      \"endDate\": \"12.06.2026\"\n    }\n  ]\n}"
                },
                "Example externalId": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"memberWorkingTime\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"mondayCapacity\": 480,\n      \"tuesdayCapacity\": 480,\n      \"wednesdayCapacity\": 480,\n      \"thursdayCapacity\": 480,\n      \"fridayCapacity\": 480,\n      \"startDate\": \"08.06.2026\",\n      \"endDate\": \"12.06.2026\"\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"2beeef01-8b17-4529-946d-5d2e43e6b807\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"3c190819-f4e3-4155-9734-743ddac351f9\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/member/workingtime/json/{dailyCapacityId}": {
      "delete": {
        "tags": [
          "Settings"
        ],
        "summary": "Delete working time",
        "description": "Deletes the specified working time for the given `dailyCapacityId`. This operation is irreversible.",
        "operationId": "Integration.DeleteMemberWorkingTime",
        "parameters": [
          {
            "name": "dailyCapacityId",
            "in": "path",
            "description": "The id of the daily capacity item to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the daily capacity item to delete"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/settings/member/workingtime/json/{userId}": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get working times",
        "description": "Returns working times for the given `userId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetMemberWorkingTime",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The id of the user",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the user"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberWorkingTimeExportItem"
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"userCapacitySettingsId\": \"4a5f21e7-34fe-4830-8050-6161aecf3df2\",\n    \"dailyCapacityId\": \"c0faedde-e764-4e2b-92d7-14ac25febb84\",\n    \"userId\": \"c184954b-9641-4e3c-99d7-3f68151c04a5\",\n    \"email\": \"someone@examplecompany.com\",\n    \"externalId\": \"12345\",\n    \"startDate\": \"06/08/2026\",\n    \"endDate\": \"06/12/2026\",\n    \"monday\": 480,\n    \"tuesday\": 480,\n    \"wednesday\": 480,\n    \"thursday\": 480,\n    \"friday\": 480,\n    \"saturday\": 0,\n    \"sunday\": 0,\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"6544ea17-f0ff-4c48-bfd4-8ab3080e84f4\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"6109e2ca-60dc-4925-a055-8793c29ce104\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  },\n  {\n    \"userCapacitySettingsId\": \"4a5f21e7-34fe-4830-8050-6161aecf3df2\",\n    \"dailyCapacityId\": \"46769c6f-4e00-4796-a7be-d61ebc9eda84\",\n    \"userId\": \"c184954b-9641-4e3c-99d7-3f68151c04a5\",\n    \"email\": \"someone@examplecompany.com\",\n    \"externalId\": \"67890\",\n    \"startDate\": \"06/15/2026\",\n    \"endDate\": \"06/19/2026\",\n    \"monday\": 240,\n    \"tuesday\": 240,\n    \"wednesday\": 240,\n    \"thursday\": 240,\n    \"friday\": 240,\n    \"saturday\": 0,\n    \"sunday\": 0,\n    \"createdBy\": \"HR Manager\",\n    \"createdById\": \"492260cd-9797-4dce-9f69-a21603332b52\",\n    \"dateCreated\": \"04.07.2023 14:55:13\",\n    \"updatedBy\": \"HR Member\",\n    \"updatedById\": \"5b86a553-811d-428f-afec-94b2803b18df\",\n    \"dateUpdated\": \"20.02.2025 10:50:34\"\n  }\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/statusreport/json": {
      "post": {
        "tags": [
          "Status reports"
        ],
        "summary": "Create status reports",
        "description": "Creates one or more status reports in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateStatusReports",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusReportCreateStatusReports"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"a7234c8e-a748-4207-bcbf-84abb5fb312e\",\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"statusReport\": [\n    {\n      \"title\": \"A new status report\",\n      \"statusDate\": \"12.06.2026\",\n      \"overallStatusId\": 1,\n      \"tempId\": 1,\n      \"externalId\": \"12345\",\n      \"explanation\": \"Good progress\",\n      \"nextSteps\": \"Reach milestone\",\n      \"targetDate\": \"12.06.2026\",\n      \"timeStatusId\": 1,\n      \"costStatusId\": 1,\n      \"goalStatusId\": 1,\n      \"progressManual\": 20,\n      \"isPublished\": false\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"1751aeb8-4409-4b0a-9b83-ddcd3899f3f2\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"cda52c53-282d-4194-94d3-50c81aaed0a9\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Status reports"
        ],
        "summary": "Updates status reports",
        "description": "Updates one or more status reports in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateStatusReports",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusReportUpdateStatusReports"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"4e2ac17c-a628-48c7-a4fd-bbd8fd512609\",\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"statusReport\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"isPublished\": true\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"336c1f70-8fc0-4fc0-9283-ce7c5d7fc07f\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"2a3d0db6-6fd5-4cec-b793-7615dea4255f\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/statusreport/json/{statusReportId}": {
      "delete": {
        "tags": [
          "Status reports"
        ],
        "summary": "Delete status report",
        "description": "Deletes the specified status report for the given `statusReportId`. This operation is irreversible.",
        "operationId": "Integration.DeleteStatusReport",
        "parameters": [
          {
            "name": "statusReportId",
            "in": "path",
            "description": "The id of the status report to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the status report to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/statusreport/json/{templateId}": {
      "post": {
        "tags": [
          "Status reports"
        ],
        "summary": "Create status report from a template",
        "description": "Creates a new status report based on the given `templateId`.",
        "operationId": "Integration.CreateStatusReportFromTemplate",
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "description": "The id of the template to use",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the template to use"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusReportFromTemplate"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"54fabc50-9de0-49fc-84fa-ee0498a00dd5\",\n  \"title\": \"A new status report\",\n  \"progressManual\": 50.0\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFromTemplateResult"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"ab7852b2-fb32-4dd7-9e65-f6860d217235\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Create tasks",
        "description": "Creates one or more tasks in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateTasks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskCreateTasks"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"projectId\": \"6db424e1-3788-4d69-911e-6d9c434bb39f\",\n  \"task\": [\n    {\n      \"title\": \"A new Task\",\n      \"tempId\": 1,\n      \"flavor\": [\n        {\n          \"target\": \"A flavor\",\n          \"value\": \"12345\"\n        }\n      ]\n    },\n    {\n      \"title\": \"A second new Task with sub task\",\n      \"tempId\": 2,\n      \"subtasks\": {\n        \"task\": [\n          {\n            \"title\": \"A sub task\",\n            \"tempId\": 3,\n            \"flavor\": [\n              {\n                \"target\": \"A flavor\",\n                \"value\": \"56789\"\n              }\n            ]\n          }\n        ]\n      },\n      \"flavor\": [\n        {\n          \"target\": \"A flavor\",\n          \"value\": \"12345\"\n        }\n      ]\n    }\n  ]\n}"
                },
                "Example external reference": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"externalIdReference\": \"Flavor:External Id\",\n  \"projectId\": \"08adf2e7-8d81-449b-8880-9e64859df84d\",\n  \"task\": [\n    {\n      \"title\": \"A new Task\",\n      \"ExternalID\": \"123\",\n      \"tempId\": 1\n    },\n    {\n      \"title\": \"A second new Task with sub task\",\n      \"ExternalID\": \"456\",\n      \"tempId\": 2,\n      \"subtasks\": {\n        \"task\": [\n          {\n            \"title\": \"A sub task\",\n            \"ExternalID\": \"789\",\n            \"tempId\": 3\n          }\n        ]\n      }\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"9147a3ce-aed4-48b9-bf75-ac0f910c27df\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"831a0dea-c430-4e87-9e03-3709ff767445\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Tasks"
        ],
        "summary": "Update tasks",
        "description": "Updates one or more tasks in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateTasks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskUpdateTasks"
              },
              "examples": {
                "Example 1": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"externalIdReference\": \"Flavor:External Id\",\n  \"projectId\": \"a4ec651d-db5a-4663-9a92-aa8a7224761f\",\n  \"task\": [\n    {\n      \"id\": \"867c2e00-d6a4-473b-ba28-af5cbe019ee1\",\n      \"useExternalId\": false,\n      \"title\": \"A new Task\",\n      \"flavor\": [\n        {\n          \"target\": \"External Id\",\n          \"value\": \"12345\"\n        }\n      ]\n    },\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"title\": \"A second new Task\",\n      \"flavor\": [\n        {\n          \"target\": \"External Id\",\n          \"value\": \"12345\"\n        }\n      ]\n    }\n  ]\n}"
                },
                "Example 2": {
                  "value": "{\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"noFeed\": false,\n  \"projectId\": \"a95c6275-9b1d-4b4b-8f11-2692d30ab69c\",\n  \"task\": [\n    {\n      \"id\": \"44cb016e-d595-4460-bdf4-97bc5907d6da\",\n      \"useExternalId\": false,\n      \"dependencySet\": [\n        {\n          \"taskId\": \"e837f12a-6fba-4a01-bcd1-0bbab82a0b1c\",\n          \"type\": \"FS\",\n          \"lag\": 0\n        },\n        {\n          \"taskId\": \"abe00af2-60c2-42e3-93f0-1d7b632607e3\",\n          \"type\": \"FS\",\n          \"lag\": 0\n        }\n      ]\n    },\n    {\n      \"id\": \"863787ec-7178-4306-97b4-5a9dcdbf854a\",\n      \"useExternalId\": false,\n      \"dependencySet\": [\n        {\n          \"taskId\": \"a353de11-b751-49db-a26a-2c5672a80e6d\",\n          \"type\": \"FS\",\n          \"lag\": 0\n        }\n      ]\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"7263aa9d-d275-439a-a083-34fbbd8d086a\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"a4dbd35d-7fe1-46e7-b468-e792493f6191\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json/{projectId}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Get tasks",
        "description": "Returns tasks for the given `projectId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetTasks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of a project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a project"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          },
          {
            "name": "viewId",
            "in": "query",
            "description": "The view id to use",
            "schema": {
              "type": "string",
              "description": "The view id to use"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json/{projectId}/{taskId}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Get task with subtasks",
        "description": "Returns task with subtasks for the given `projectId`, `taskId` from the current workspace.",
        "operationId": "Integration.GetTaskTree",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The project id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The project id"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "The task id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The task id"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  \"2205aac6-6c94-416b-984d-7f39bf50c32d\",\n  \"fcad1e0e-6d86-4467-92d0-41c776c66340\",\n  \"75a7b1ed-096e-422d-8cf9-2922b4011cfb\"\n]"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json/{taskId}": {
      "delete": {
        "tags": [
          "Tasks"
        ],
        "summary": "Delete task",
        "description": "Deletes the specified task for the given `taskId`. This operation is irreversible.",
        "operationId": "Integration.DeleteTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The id of the task to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the task to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json/{taskId}/dependencies": {
      "patch": {
        "tags": [
          "Tasks"
        ],
        "summary": "Update task dependencies",
        "description": "Add or modify dependencies for a task. The task identified by `taskId` is always the dependent (successor) task - the one whose start is blocked by its predecessors. Existing dependencies that are not part of the request remain unchanged. To detach dependencies, use the `DELETE` variant of this endpoint.",
        "operationId": "Integration.PatchTaskDependencies",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The id of the dependent task - the task that depends on others.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the dependent task - the task that depends on others."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TaskDependencySet"
                },
                "description": "Each object describes a single dependency to add or modify. To attach multiple predecessors, send multiple objects."
              },
              "examples": {
                "Example": {
                  "value": "[\n  {\n    \"taskId\": \"ab2c08bf-1b3d-48b0-be0d-eaa71b878cda\",\n    \"type\": \"FS\"\n  },\n  {\n    \"taskId\": \"1d54819f-3431-415a-9415-185c018d1a83\",\n    \"type\": \"FS\",\n    \"lag\": 10\n  }\n]"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Tasks"
        ],
        "summary": "Remove task dependencies",
        "description": "Detach one or more dependencies from a task. The task identified by `taskId` is the dependent (successor) task. The `taskIds` query parameter lists the predecessor tasks that should no longer block it. Dependencies not included in `taskIds` are kept.",
        "operationId": "Integration.RemoveTaskDependencies",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The id of the dependent task to remove dependencies from.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the dependent task to remove dependencies from."
            }
          },
          {
            "name": "taskIds",
            "in": "query",
            "description": "Ids of the predecessor tasks to detach from the dependent task.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Ids of the predecessor tasks to detach from the dependent task."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/task/json/{templateId}": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Create task from a template",
        "description": "Creates a new task based on the given `templateId`.",
        "operationId": "Integration.CreateTaskFromTemplate",
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "description": "The id of the template to use",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the template to use"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskFromTemplate"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"9f2adb54-a469-49fb-b9bc-e7245ffca052\",\n  \"title\": \"A new task\",\n  \"overrideStatus\": false,\n  \"overridePriority\": false,\n  \"overrideWorkflow\": false,\n  \"overrideWorkflowStatus\": false\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFromTemplateResult"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"ddc900ae-ceae-4b8f-82b7-120373f8745a\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/status/json/{ticketId}": {
      "get": {
        "tags": [
          "Tickets / Timezones"
        ],
        "summary": "Get status ticket",
        "description": "Returns the processing status for a previously created integration ticket. Use this endpoint to poll until the ticket is finished and to retrieve any per-item results or error messages.",
        "operationId": "Integration.GetStatus",
        "parameters": [
          {
            "name": "ticketId",
            "in": "path",
            "description": "The id for the statusticket to get",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id for the statusticket to get"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicket"
                },
                "examples": {
                  "Success example": {
                    "value": "{\n  \"id\": \"a2f4ddcc-4ec5-4209-bc10-150c553cb666\",\n  \"endpoint\": \"Endpoint name\",\n  \"success\": 1,\n  \"status\": \"Success\",\n  \"statusId\": 10,\n  \"received\": \"12.06.2026 13:06:36\",\n  \"started\": \"12.06.2026 13:06:38\",\n  \"processed\": \"12.06.2026 13:06:43\"\n}"
                  },
                  "Started example": {
                    "value": "{\n  \"id\": \"c65a03e2-c156-449e-8a91-fe29c529aab7\",\n  \"endpoint\": \"Endpoint name\",\n  \"success\": 0,\n  \"status\": \"Started\",\n  \"statusId\": 1,\n  \"received\": \"12.06.2026 13:06:36\",\n  \"started\": \"12.06.2026 13:06:38\"\n}"
                  },
                  "Failure example": {
                    "value": "{\n  \"id\": \"876be392-33cf-473d-8f94-dfe5afccee8f\",\n  \"endpoint\": \"Endpoint name\",\n  \"success\": 0,\n  \"status\": \"Failed\",\n  \"statusId\": 30,\n  \"received\": \"12.06.2026 13:06:36\",\n  \"started\": \"12.06.2026 13:06:38\",\n  \"processed\": \"12.06.2026 13:06:43\"\n}"
                  },
                  "Error example": {
                    "value": "{\n  \"id\": \"e6ee26f9-233e-459e-9369-226c9d386497\",\n  \"endpoint\": \"Endpoint name\",\n  \"success\": 0,\n  \"status\": \"Success with Errors\",\n  \"statusId\": 20,\n  \"received\": \"12.06.2026 13:06:36\",\n  \"started\": \"12.06.2026 13:06:38\",\n  \"processed\": \"12.06.2026 13:06:43\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/timezones/json": {
      "get": {
        "tags": [
          "Tickets / Timezones"
        ],
        "summary": "Get timezones",
        "description": "Returns the list of supported timezone identifiers that can be used with the integration API. Use the returned `id` values in the `timezone` / `timezoneId` fields to ensure correct date/time conversions.",
        "operationId": "Integration.GetTimezones",
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Timezone"
                  }
                },
                "examples": {
                  "Example": {
                    "value": "[\n  {\n    \"id\": \"W. Europe Standard Time\",\n    \"displayName\": \"(UTC+01:00) Central European Time (Berlin)\"\n  }\n]"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/timerecord/json": {
      "post": {
        "tags": [
          "Time records"
        ],
        "summary": "Create time records",
        "description": "Creates one or more time records in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. Use `tempId` and/or `externalId` fields (where available) to correlate your input rows with the processed results.",
        "operationId": "Integration.CreateTimeRecords",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeRecordCreateTimeRecords"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"cd5d645a-ee88-4c90-acec-e6cc06d19358\",\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"timeRecord\": [\n    {\n      \"userId\": \"someone@examplecompany.com\",\n      \"taskId\": \"9518ffa0-b84d-4d50-9380-a6ce0c38a80f\",\n      \"date\": \"12.06.2026\",\n      \"duration\": 60,\n      \"statusId\": 0,\n      \"tempId\": 1,\n      \"externalId\": \"12345\",\n      \"flavor\": [\n        {\n          \"target\": \"TimeFlavor\",\n          \"value\": \"12345\"\n        }\n      ]\n    },\n    {\n      \"userId\": \"otherperson@examplecompany.com\",\n      \"taskId\": \"cdc29e16-5ee0-4a80-947d-307870d34920\",\n      \"date\": \"12.06.2026\",\n      \"startDate\": \"12.06.2026 13:06:58\",\n      \"endDate\": \"12.06.2026 14:06:58\",\n      \"statusId\": 0,\n      \"tempId\": 2,\n      \"externalId\": \"54321\",\n      \"flavor\": [\n        {\n          \"target\": \"TimeFlavor\",\n          \"value\": \"12345\"\n        }\n      ]\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"0e632683-7e0e-424c-bf52-8169696bcc15\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"d4fe4adb-57fe-40ce-bca0-8ded6f211c1a\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Time records"
        ],
        "summary": "Update time records",
        "description": "Updates one or more time records in bulk based on the request payload. Processing is asynchronous: the response returns a status ticket id that you can poll via `GET /api/integration/status/json/{ticketId}`. If the API supports external identifiers, you can set `useExternalId` to update by `externalId` instead of the internal id.",
        "operationId": "Integration.UpdateTimeRecords",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeRecordUpdateTimeRecords"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"projectId\": \"901c93c7-a74d-43d7-9fcf-2ac9c9fb0d10\",\n  \"timezoneId\": \"W. Europe Standard Time\",\n  \"timeRecord\": [\n    {\n      \"id\": \"12345\",\n      \"useExternalId\": true,\n      \"locked\": true,\n      \"duration\": 120\n    },\n    {\n      \"id\": \"51dd55fd-9ba5-4178-9c47-f0ed0b52f00a\",\n      \"useExternalId\": false,\n      \"startDate\": \"12.06.2026 13:06:58\",\n      \"endDate\": \"12.06.2026 14:06:58\",\n      \"flavor\": [\n        {\n          \"target\": \"TimeFlavor\",\n          \"value\": \"56789\"\n        }\n      ]\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"9cec1180-9847-445e-acf4-4ad598d2ed52\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusTicketReference"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"id\": \"d0ad2939-e316-4a6e-90a7-f2931c5e14db\",\n  \"received\": \"12.06.2026 13:06:58\"\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/timerecord/json/{projectId}": {
      "get": {
        "tags": [
          "Time records"
        ],
        "summary": "Get time records",
        "description": "Returns time records for the given `projectId` from the current workspace. Date/time values and localized fields are converted using the optional `lang` and `timezone` query parameters.",
        "operationId": "Integration.GetTimeRecords",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of a project",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of a project"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "The language used for conversions",
            "schema": {
              "type": "string",
              "description": "The language used for conversions",
              "default": "de-DE"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "schema": {
              "type": "string",
              "description": "The timezone used for conversions (see /api/integration/timezones/json)",
              "default": "W. Europe Standard Time"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeRecordExportItem"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/timerecord/json/{timeRecordId}": {
      "delete": {
        "tags": [
          "Time records"
        ],
        "summary": "Delete time record",
        "description": "Deletes the specified time record for the given timeRecordId. This operation is irreversible.",
        "operationId": "Integration.DeleteTimeRecord",
        "parameters": [
          {
            "name": "timeRecordId",
            "in": "path",
            "description": "The id of the time record to delete",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The id of the time record to delete"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "examples": {
                  "Example": {
                    "value": "{\n  \"errors\": [\n    \"An error message\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/workspace/invite/guests/json": {
      "post": {
        "tags": [
          "Workspace"
        ],
        "summary": "Invite guests to a workspace",
        "description": "Invites guests to a workspace. The role field sets the permission level: guest, restricted-guest, or read-only-guest. Admins cannot be guests.",
        "operationId": "Integration.InviteGuests",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteGuestsToWorkspace"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"invites\": [\n    {\n      \"locale\": \"de\",\n      \"role\": \"guest\",\n      \"email\": \"someone@examplecompany.com\"\n    },\n    {\n      \"locale\": \"en\",\n      \"role\": \"read-only-guest\",\n      \"email\": \"otherperson@examplecompany.com\"\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteUsersToWorkspaceResult"
                },
                "examples": {
                  "Example 1": {
                    "value": "{\n  \"HasErrors\": false,\n  \"invited\": [\n    \"someone@examplecompany.com\",\n    \"otherperson@examplecompany.com\"\n  ],\n  \"notInvited\": [],\n  \"errorDetails\": []\n}"
                  },
                  "Example 2": {
                    "value": "{\n  \"HasErrors\": true,\n  \"invited\": [\n    \"someone@examplecompany.com\"\n  ],\n  \"notInvited\": [],\n  \"errorDetails\": [\n    \"otherperson@examplecompany.com\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InviteUsersToWorkspaceResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    },
    "/api/integration/workspace/invite/members/json": {
      "post": {
        "tags": [
          "Workspace"
        ],
        "summary": "Invite users to a workspace",
        "description": "Invites users to a workspace. The role field sets the permission level: admin, member, restricted-member, or read-only-member.",
        "operationId": "Integration.InviteUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteMembersToWorkspace"
              },
              "examples": {
                "Example": {
                  "value": "{\n  \"invites\": [\n    {\n      \"flags\": [\n        \"sc-access-hr\"\n      ],\n      \"locale\": \"de\",\n      \"role\": \"member\",\n      \"email\": \"someone@examplecompany.com\"\n    },\n    {\n      \"flags\": [\n        \"sc-manage-times\"\n      ],\n      \"locale\": \"en\",\n      \"role\": \"read-only-member\",\n      \"email\": \"otherperson@examplecompany.com\"\n    }\n  ]\n}"
                }
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteUsersToWorkspaceResult"
                },
                "examples": {
                  "Example 1": {
                    "value": "{\n  \"HasErrors\": false,\n  \"invited\": [\n    \"someone@examplecompany.com\",\n    \"otherperson@examplecompany.com\"\n  ],\n  \"notInvited\": [],\n  \"errorDetails\": []\n}"
                  },
                  "Example 2": {
                    "value": "{\n  \"HasErrors\": true,\n  \"invited\": [\n    \"someone@examplecompany.com\"\n  ],\n  \"notInvited\": [],\n  \"errorDetails\": [\n    \"otherperson@examplecompany.com\"\n  ]\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InviteUsersToWorkspaceResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "APIKey": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AbsenceCreate": {
        "required": [
          "absenceTypeId",
          "endDate",
          "startDate",
          "status",
          "userId"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "A comment for the absence",
            "default": null,
            "nullable": true
          },
          "startDateMinutes": {
            "type": "integer",
            "description": "The duration of an absence in minutes for the first day of an absence",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "endDateMinutes": {
            "type": "integer",
            "description": "The duration of an absence in minutes for the last day of an absence",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "A locked absence can't be modified",
            "default": false
          },
          "userId": {
            "minLength": 1,
            "type": "string",
            "description": "The user id or email of a user this absence is dedicated to",
            "default": null
          },
          "absenceTypeId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of an absence type or it's name",
            "default": null
          },
          "startDate": {
            "type": "string",
            "description": "The date the absence begins",
            "format": "date-time",
            "default": null
          },
          "endDate": {
            "type": "string",
            "description": "The date the absence ends",
            "format": "date-time",
            "default": null
          },
          "status": {
            "minLength": 1,
            "type": "string",
            "description": "The current status of an absence (submitted, approved, rejected)",
            "default": null
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id to identify an absence",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AbsenceCreateAbsences": {
        "required": [
          "absence"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "absence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbsenceCreate"
            },
            "description": "The absences to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "AbsenceExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The absence id",
            "default": null,
            "nullable": true
          },
          "absenceType": {
            "type": "string",
            "description": "The absence type",
            "default": null,
            "nullable": true
          },
          "absenceTypeId": {
            "type": "string",
            "description": "The absence type id",
            "default": null,
            "nullable": true
          },
          "user": {
            "type": "string",
            "description": "The user",
            "default": null,
            "nullable": true
          },
          "userId": {
            "type": "string",
            "description": "The user id",
            "default": null,
            "nullable": true
          },
          "approvers": {
            "type": "string",
            "description": "A comma separated list of approvers",
            "default": null,
            "nullable": true
          },
          "approverIds": {
            "type": "string",
            "description": "A comma separated list of approver ids",
            "default": null,
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "A comment",
            "default": null,
            "nullable": true
          },
          "startYear": {
            "type": "integer",
            "description": "The year the absence starts",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "endYear": {
            "type": "integer",
            "description": "The year the absence ends",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The end date",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "description": "The durartion",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "workdays": {
            "type": "number",
            "description": "The duration in workdays",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "startEndIndividual": {
            "type": "boolean",
            "description": "Use individual start or end instead of a complete day",
            "default": false
          },
          "startDateMinutes": {
            "type": "integer",
            "description": "Minutes on start date",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "endDateMinutes": {
            "type": "integer",
            "description": "Minutes on end date",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The current status",
            "default": null,
            "nullable": true
          },
          "statusChangedBy": {
            "type": "string",
            "description": "Last user who changed the status",
            "default": null,
            "nullable": true
          },
          "statusChangedById": {
            "type": "string",
            "description": "Last user id who changed the status",
            "default": null,
            "nullable": true
          },
          "statusChangedOn": {
            "type": "string",
            "description": "The status was last changed on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id",
            "default": null,
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "description": "The date the absence was created on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "description": "The user created the absence",
            "default": null,
            "nullable": true
          },
          "createdById": {
            "type": "string",
            "description": "The user id created the absence",
            "default": null,
            "nullable": true
          },
          "updatedOn": {
            "type": "string",
            "description": "The timestamp the absence was udated on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "updatedBy": {
            "type": "string",
            "description": "The user updated the absence",
            "default": null,
            "nullable": true
          },
          "updatedById": {
            "type": "string",
            "description": "The user id updated the absence",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AbsenceTypeCreate": {
        "required": [
          "title"
        ],
        "type": "object",
        "properties": {
          "icon": {
            "type": "string",
            "description": "The icon of the absencetype",
            "default": null,
            "nullable": true
          },
          "iconPrefix": {
            "type": "string",
            "description": "The iconprefix of the absencetype",
            "default": null,
            "nullable": true
          },
          "isApprovalNecessary": {
            "type": "boolean",
            "description": "Defines if an approval is needed for this absencetype",
            "default": null,
            "nullable": true
          },
          "includeInHolidaysOverview": {
            "type": "boolean",
            "description": "Defines if absencetype is included in holidays overview",
            "default": null,
            "nullable": true
          },
          "yearlyBudget": {
            "type": "number",
            "description": "The yearly budget for this absencetype",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "recommendedApprovers": {
            "type": "string",
            "description": "Persons for approving absences of this absencetype",
            "default": null,
            "nullable": true
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "The title of the absencetype",
            "default": null
          },
          "type": {
            "type": "string",
            "description": "The type of the absencetype",
            "default": null,
            "nullable": true
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id to find an existing absencetype for updates if available",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AbsenceTypeCreateAbsenceTypes": {
        "required": [
          "absenceType"
        ],
        "type": "object",
        "properties": {
          "absenceType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbsenceTypeCreate"
            },
            "description": "The absence types to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "AbsenceTypeExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of this absencetype",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title for this absencetype",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type for this absencetype",
            "nullable": true
          },
          "isApprovalNecessary": {
            "type": "boolean",
            "description": "Approval is necessary or not"
          },
          "includeInHolidaysOverview": {
            "type": "boolean",
            "description": "Absences using this absencetype are visible in holidays overview or not"
          },
          "yearlyBudget": {
            "type": "number",
            "description": "The yearly budget for absences using this absencetype im type is limitied",
            "format": "double",
            "nullable": true
          },
          "color": {
            "type": "string",
            "description": "The Color used for this absencetype",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "The icon used for this absencetype",
            "nullable": true
          },
          "iconPrefix": {
            "type": "string",
            "description": "The icon prefix used for this absencetypes icon",
            "nullable": true
          },
          "recommendedApprovers": {
            "type": "string",
            "description": "The icon prefix used for this absencetypes icon",
            "nullable": true
          },
          "recommendedApproversIds": {
            "type": "string",
            "description": "The icon prefix used for this absencetypes icon",
            "nullable": true
          },
          "recommendedApprovingTeams": {
            "type": "string",
            "description": "The icon prefix used for this absencetypes icon",
            "nullable": true
          },
          "recommendedApprovingTeamsIds": {
            "type": "string",
            "description": "The icon prefix used for this absencetypes icon",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "description": "The user who has created this absencetype",
            "nullable": true
          },
          "createdById": {
            "type": "string",
            "description": "The id of the user who has created this absencetype",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "description": "The timestamp of absencetype creation",
            "nullable": true
          },
          "updatedBy": {
            "type": "string",
            "description": "The user who has updated this absencetype last",
            "nullable": true
          },
          "updatedById": {
            "type": "string",
            "description": "The id of the user who has updated this absencetype last",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "description": "The timestamp of last update",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AbsenceTypeUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the absencetype",
            "default": null,
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "The icon of the absencetype",
            "default": null,
            "nullable": true
          },
          "iconPrefix": {
            "type": "string",
            "description": "The iconprefix of the absencetype",
            "default": null,
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type of the absencetype",
            "default": null,
            "nullable": true
          },
          "isApprovalNecessary": {
            "type": "boolean",
            "description": "Defines if an approval is needed for this absencetype",
            "default": null,
            "nullable": true
          },
          "includeInHolidaysOverview": {
            "type": "boolean",
            "description": "Defines if absencetype is included in holidays overview",
            "default": null,
            "nullable": true
          },
          "yearlyBudget": {
            "type": "number",
            "description": "The yearly budget for this absencetype",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "recommendedApprovers": {
            "type": "string",
            "description": "Persons for approving absences of this absencetype",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the absencetype to update",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this absence type",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "AbsenceTypeUpdateAbsenceTypes": {
        "required": [
          "absenceType"
        ],
        "type": "object",
        "properties": {
          "absenceType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbsenceTypeUpdate"
            },
            "description": "The absence types to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "AbsenceUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "A comment for the absence",
            "default": null,
            "nullable": true
          },
          "userId": {
            "type": "string",
            "description": "The user id or email of a user this absence is dedicated to",
            "default": null,
            "nullable": true
          },
          "absenceTypeId": {
            "type": "string",
            "description": "The id of an absence type or it's name",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The date the absence begins",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The date the absence ends",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "startDateMinutes": {
            "type": "integer",
            "description": "The duration of an absence in minutes for the first day of an absence",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "endDateMinutes": {
            "type": "integer",
            "description": "The duration of an absence in minutes for the last day of an absence",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The current status of an absence (submitted, approved, rejected)",
            "default": null,
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "A locked absence can't be modified",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or external id of the absence",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this absence",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "AbsenceUpdateAbsences": {
        "required": [
          "absence"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "absence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbsenceUpdate"
            },
            "description": "The absences to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "AddAccess": {
        "type": "object",
        "properties": {
          "users": {
            "type": "string",
            "description": "A comma separated list of users (email or id)",
            "default": null,
            "nullable": true
          },
          "teams": {
            "type": "string",
            "description": "A comma separated list of teams (name or id)",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApplyTemplateToProject": {
        "required": [
          "projectId"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the project"
          },
          "overwriteValues": {
            "type": "boolean",
            "description": "Overwrite values",
            "default": false
          },
          "startDate": {
            "type": "boolean",
            "description": "Import start date",
            "default": false
          },
          "endDate": {
            "type": "boolean",
            "description": "Import end date",
            "default": false
          },
          "flavors": {
            "type": "boolean",
            "description": "Import flavors",
            "default": false
          },
          "flavorGroupsLockStatus": {
            "type": "boolean",
            "description": "Import flavor groups lock status",
            "default": false
          },
          "labels": {
            "type": "boolean",
            "description": "Import labels",
            "default": false
          },
          "manager": {
            "type": "boolean",
            "description": "Import manager",
            "default": false
          },
          "budget": {
            "type": "boolean",
            "description": "Import budget",
            "default": false
          },
          "location": {
            "type": "boolean",
            "description": "Import location",
            "default": false
          },
          "description": {
            "type": "boolean",
            "description": "Import description",
            "default": false
          },
          "goal": {
            "type": "boolean",
            "description": "Import goal",
            "default": false
          },
          "benefit": {
            "type": "boolean",
            "description": "Import benefit",
            "default": false
          },
          "icon": {
            "type": "boolean",
            "description": "Import icon",
            "default": false
          },
          "files": {
            "type": "boolean",
            "description": "Import files",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "AttachmentInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the uploaded document",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the uploaded document",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the uploaded document",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type for the uploaded document",
            "nullable": true
          },
          "uploadedById": {
            "type": "string",
            "description": "The id of the user who uploaded document",
            "nullable": true
          },
          "uploadedBy": {
            "type": "string",
            "description": "The name of the user who uploaded document",
            "nullable": true
          },
          "uploadedOn": {
            "type": "string",
            "description": "The timestamp the document has been uploaded on",
            "format": "date-time",
            "nullable": true
          },
          "attachedTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentReference"
            },
            "description": "The entities this attachment is attached to",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AttachmentReference": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "description": "The id of the entity",
            "nullable": true
          },
          "itemType": {
            "type": "string",
            "description": "The type of the entity",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AttachmentUpload": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the uploaded document",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the uploaded document",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the uploaded document",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type for the uploaded document",
            "nullable": true
          },
          "uploadedById": {
            "type": "string",
            "description": "The id of the user who uploaded document",
            "nullable": true
          },
          "uploadedBy": {
            "type": "string",
            "description": "The name of the user who uploaded document",
            "nullable": true
          },
          "uploadedOn": {
            "type": "string",
            "description": "The timestamp the document has been uploaded on",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BadRequestError": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of errors",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BadRequestErrorExample": {
        "type": "object",
        "additionalProperties": false
      },
      "CommentExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of this comment",
            "nullable": true
          },
          "taskId": {
            "type": "string",
            "description": "The id of the task",
            "nullable": true
          },
          "statusReportId": {
            "type": "string",
            "description": "The id of the statusreport",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "description": "The name of the user",
            "nullable": true
          },
          "createdById": {
            "type": "string",
            "description": "The userid",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "description": "The timestamp of comment creation",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "description": "The timestamp of last update",
            "nullable": true
          },
          "text": {
            "type": "string",
            "description": "The text for this comment",
            "nullable": true
          },
          "textHtml": {
            "type": "string",
            "description": "The text for this comment as html",
            "nullable": true
          },
          "isInternal": {
            "type": "string",
            "description": "The text is internal and not visible to guests",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommentUpdate": {
        "required": [
          "id",
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "minLength": 1,
            "type": "string",
            "description": "The text for this comment",
            "default": ""
          },
          "isInternal": {
            "type": "boolean",
            "description": "The text is internal and not visible to guests",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the comment to update",
            "default": null
          }
        },
        "additionalProperties": false
      },
      "CommentUpdateComments": {
        "required": [
          "comment"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommentUpdate"
            },
            "description": "The comments to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "CreateFromTemplateResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the created item",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Flavor": {
        "required": [
          "target",
          "value"
        ],
        "type": "object",
        "properties": {
          "target": {
            "minLength": 1,
            "type": "string",
            "description": "The name or id of the flavor",
            "default": null
          },
          "value": {
            "type": "string",
            "description": "The value for the flavor",
            "default": null
          }
        },
        "additionalProperties": false
      },
      "FlavorExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the flavor",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title of the flavor",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The description of the flavor",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "description": "The type of the flavor",
            "format": "int32",
            "nullable": true
          },
          "typeName": {
            "type": "string",
            "description": "The type name of the flavor",
            "nullable": true
          },
          "context": {
            "type": "string",
            "description": "The context of the flavor",
            "nullable": true
          },
          "isMandatory": {
            "type": "boolean",
            "description": "The flavor is mandatory"
          },
          "visible": {
            "type": "boolean",
            "description": "The visibility of the flavor"
          },
          "hideForGuests": {
            "type": "boolean",
            "description": "Flavor is hidden for guests"
          },
          "showInAvatarDetail": {
            "type": "boolean",
            "description": "Flavor is shown in avatar detail"
          },
          "accessByUsers": {
            "type": "string",
            "description": "The text is internal and not visible to guests",
            "nullable": true
          },
          "accessByTeams": {
            "type": "string",
            "description": "The text is internal and not visible to guests",
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The flavor is locked"
          },
          "lockedBy": {
            "type": "string",
            "description": "The flavor was locked by this user",
            "nullable": true
          },
          "lockedOn": {
            "type": "string",
            "description": "The timstamp the flavor was locked on",
            "format": "date-time",
            "nullable": true
          },
          "lockedEditValue": {
            "type": "boolean",
            "description": "Editing flavor values is locked"
          },
          "lockedEditValueBy": {
            "type": "string",
            "description": "Editing flavor values was locked by this user",
            "nullable": true
          },
          "lockedEditValueOn": {
            "type": "string",
            "description": "The timstamp editing flavor values was locked on",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FolderCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "priority": {
            "type": "string",
            "description": "The priority of the folder (none, low, medium, high, highest)",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The end date",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A Description for the folder",
            "nullable": true
          },
          "color": {
            "type": "string",
            "description": "A color in hex format (#rrggbb)",
            "nullable": true
          },
          "fillRowWithColor": {
            "type": "boolean",
            "description": "Fill folder row with color if set",
            "nullable": true
          },
          "taskTemplateId": {
            "type": "string",
            "description": "The id of a task template to use for new tasks if set",
            "nullable": true
          },
          "noNewTasksAllowed": {
            "type": "boolean",
            "description": "Creating new tasks is not allowed",
            "nullable": true
          },
          "assignNewTasksToCreator": {
            "type": "boolean",
            "description": "New tasks are assigned to their creator",
            "nullable": true
          },
          "appointedUsers": {
            "type": "string",
            "description": "The users this folder is appointed to",
            "nullable": true
          },
          "appointedTeams": {
            "type": "string",
            "description": "The teams this folder is appointed to",
            "nullable": true
          },
          "lockNewTasks": {
            "type": "boolean",
            "description": "New created tasks are locked",
            "nullable": true
          },
          "usersWithAccess": {
            "type": "string",
            "description": "Users with access to locked tasks",
            "nullable": true
          },
          "teamsWithAccess": {
            "type": "string",
            "description": "Teams with access to locked tasks",
            "nullable": true
          },
          "privateNewTasks": {
            "type": "boolean",
            "description": "New created tasks are private",
            "nullable": true
          },
          "usersWithPrivateAccess": {
            "type": "string",
            "description": "Users with access to private tasks",
            "nullable": true
          },
          "teamsWithPrivateAccess": {
            "type": "string",
            "description": "Teams with access to private tasks",
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The folder is locked",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the folder"
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FolderCreateFolders": {
        "required": [
          "folder",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the project the folders belong to",
            "default": null
          },
          "folder": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FolderCreate"
            },
            "description": "The folders to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "FolderExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the folder",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the folder",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "description": "The priority of the folder (none = 0, low = 1, medium = 2, high = 3, highest = 4)",
            "format": "int32",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The end date",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A Description for the folder",
            "nullable": true
          },
          "color": {
            "type": "string",
            "description": "A color in hex format (#rrggbb)",
            "nullable": true
          },
          "fillRowWithColor": {
            "type": "boolean",
            "description": "Fill folder row with color if set"
          },
          "taskTemplateId": {
            "type": "string",
            "description": "The id of a task template to use for new tasks if set",
            "nullable": true
          },
          "noNewTasksAllowed": {
            "type": "boolean",
            "description": "Creating new tasks is not allowed"
          },
          "assignNewTasksToCreator": {
            "type": "boolean",
            "description": "New tasks are assigned to their creator"
          },
          "appointedUsers": {
            "type": "string",
            "description": "The users this folder is appointed to",
            "nullable": true
          },
          "appointedUsersIds": {
            "type": "string",
            "description": "The ids of the users this folder is appointed to",
            "nullable": true
          },
          "appointedTeams": {
            "type": "string",
            "description": "The teams this folder is appointed to",
            "nullable": true
          },
          "appointedTeamsIds": {
            "type": "string",
            "description": "The ids of the teams this folder is appointed to",
            "nullable": true
          },
          "lockNewTasks": {
            "type": "boolean",
            "description": "New created tasks are locked"
          },
          "usersWithAccess": {
            "type": "string",
            "description": "Users with access to locked tasks",
            "nullable": true
          },
          "usersWithAccessIds": {
            "type": "string",
            "description": "Ids for the users with access to locked tasks",
            "nullable": true
          },
          "teamsWithAccess": {
            "type": "string",
            "description": "Teams with access to locked tasks",
            "nullable": true
          },
          "teamsWithAccessIds": {
            "type": "string",
            "description": "Ids for the teams with access to locked tasks",
            "nullable": true
          },
          "privateNewTasks": {
            "type": "boolean",
            "description": "New created tasks are private"
          },
          "usersWithPrivateAccess": {
            "type": "string",
            "description": "Users with access to private tasks",
            "nullable": true
          },
          "usersWithPrivateAccessIds": {
            "type": "string",
            "description": "Ids for the users with access to private tasks",
            "nullable": true
          },
          "teamsWithPrivateAccess": {
            "type": "string",
            "description": "Teams with access to private tasks",
            "nullable": true
          },
          "teamsWithPrivateAccessIds": {
            "type": "string",
            "description": "Ids for the teams with access to private tasks",
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The folder is locked"
          },
          "lockedBy": {
            "type": "string",
            "description": "The folder was locked by",
            "nullable": true
          },
          "lockedById": {
            "type": "string",
            "description": "The folder was locked by id",
            "nullable": true
          },
          "lockedOn": {
            "type": "string",
            "description": "The folder was locked locked on",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FolderUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the folder",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "description": "The priority of the folder (none, low, medium, high, highest)",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The end date",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A Description for the folder",
            "nullable": true
          },
          "color": {
            "type": "string",
            "description": "A color in hex format (#rrggbb)",
            "nullable": true
          },
          "fillRowWithColor": {
            "type": "boolean",
            "description": "Fill folder row with color if set",
            "nullable": true
          },
          "taskTemplateId": {
            "type": "string",
            "description": "The id of a task template to use for new tasks if set",
            "nullable": true
          },
          "noNewTasksAllowed": {
            "type": "boolean",
            "description": "Creating new tasks is not allowed",
            "nullable": true
          },
          "assignNewTasksToCreator": {
            "type": "boolean",
            "description": "New tasks are assigned to their creator",
            "nullable": true
          },
          "appointedUsers": {
            "type": "string",
            "description": "The users this folder is appointed to",
            "nullable": true
          },
          "appointedTeams": {
            "type": "string",
            "description": "The teams this folder is appointed to",
            "nullable": true
          },
          "lockNewTasks": {
            "type": "boolean",
            "description": "New created tasks are locked",
            "nullable": true
          },
          "usersWithAccess": {
            "type": "string",
            "description": "Users with access to locked tasks",
            "nullable": true
          },
          "teamsWithAccess": {
            "type": "string",
            "description": "Teams with access to locked tasks",
            "nullable": true
          },
          "privateNewTasks": {
            "type": "boolean",
            "description": "New created tasks are private",
            "nullable": true
          },
          "usersWithPrivateAccess": {
            "type": "string",
            "description": "Users with access to private tasks",
            "nullable": true
          },
          "teamsWithPrivateAccess": {
            "type": "string",
            "description": "Teams with access to private tasks",
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The folder is locked",
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the folder"
          }
        },
        "additionalProperties": false
      },
      "FolderUpdateFolders": {
        "required": [
          "folder",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the project the folders belong to",
            "default": null
          },
          "folder": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FolderUpdate"
            },
            "description": "The folders to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "InviteGuest": {
        "required": [
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "description": "Email address the invitation will be sent to."
          },
          "locale": {
            "type": "string",
            "description": "Interface language for the invited guest (`de` or `en`). Defaults to `de`.",
            "default": "de",
            "nullable": true
          },
          "role": {
            "minLength": 1,
            "type": "string",
            "description": "Permission level of the invited guest: `guest`, `restricted-guest`, or `read-only-guest`."
          }
        },
        "additionalProperties": false
      },
      "InviteGuestsToWorkspace": {
        "required": [
          "invites"
        ],
        "type": "object",
        "properties": {
          "invites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InviteGuest"
            },
            "description": "List of users to invite. Each entry is processed independently - partial success is possible."
          }
        },
        "additionalProperties": false
      },
      "InviteMember": {
        "required": [
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "description": "Email address the invitation will be sent to."
          },
          "flags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional access flags: • `sc-access-hr` - grants access to HR data (team members only). • `sc-manage-times` - allows managing time entries on behalf of others (team members only).",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "description": "Interface language for the invited user (`de` or `en`). Defaults to `de`.",
            "default": "de",
            "nullable": true
          },
          "role": {
            "minLength": 1,
            "type": "string",
            "description": "Permission level of the invited member: `admin`, `member`, `restricted-member`, or `read-only-member`."
          }
        },
        "additionalProperties": false
      },
      "InviteMembersToWorkspace": {
        "required": [
          "invites"
        ],
        "type": "object",
        "properties": {
          "invites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InviteMember"
            },
            "description": "List of users to invite. Each entry is processed independently - partial success is possible."
          }
        },
        "additionalProperties": false
      },
      "InviteUsersToWorkspaceResult": {
        "type": "object",
        "properties": {
          "hasErrors": {
            "type": "boolean",
            "description": "A flag to quickly check for errors",
            "readOnly": true
          },
          "invited": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of email addresses containing the invited members",
            "nullable": true
          },
          "notInvited": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of email addresses containing the not invited members",
            "nullable": true
          },
          "errorDetails": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list containing errors",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MemberUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or email of the member to update",
            "default": null
          }
        },
        "additionalProperties": false
      },
      "MemberUpdateMembers": {
        "required": [
          "member"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "member": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberUpdate"
            },
            "description": "The absence types to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "MemberWorkingTimeCreate": {
        "required": [
          "startDate",
          "userId"
        ],
        "type": "object",
        "properties": {
          "mondayCapacity": {
            "type": "integer",
            "description": "The capacity on mondays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "tuesdayCapacity": {
            "type": "integer",
            "description": "The capacity on tuesdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "wednesdayCapacity": {
            "type": "integer",
            "description": "The capacity on wendnesdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "thursdayCapacity": {
            "type": "integer",
            "description": "The capacity on thursdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "fridayCapacity": {
            "type": "integer",
            "description": "The capacity on fridays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "saturdayCapacity": {
            "type": "integer",
            "description": "The capacity on saturdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "sundayCapacity": {
            "type": "integer",
            "description": "The capacity on sundays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "userId": {
            "minLength": 1,
            "type": "string",
            "description": "The id or email of the member to update",
            "default": null
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id to find an existing working times for updates if available",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The the start date for this member working time record",
            "format": "date-time",
            "default": null
          },
          "endDate": {
            "type": "string",
            "description": "The the end date for this member working time record",
            "format": "date-time",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MemberWorkingTimeCreateMemberWorkingTimes": {
        "required": [
          "memberWorkingTime"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "memberWorkingTime": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberWorkingTimeCreate"
            },
            "description": "The working times to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "MemberWorkingTimeExportItem": {
        "type": "object",
        "properties": {
          "userCapacitySettingsId": {
            "type": "string",
            "description": "The id of the user capactity settings item",
            "nullable": true
          },
          "dailyCapacityId": {
            "type": "string",
            "description": "The id of the user daily capactity item",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "description": "The member's id",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The member's email",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id of the user daily capactity item",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The the start date for this user daily capactity item",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The the end date for this user daily capactity item",
            "nullable": true
          },
          "monday": {
            "type": "integer",
            "description": "The capacity on mondays in minutes",
            "format": "int32",
            "nullable": true
          },
          "tuesday": {
            "type": "integer",
            "description": "The capacity on tuesdays in minutes",
            "format": "int32",
            "nullable": true
          },
          "wednesday": {
            "type": "integer",
            "description": "The capacity on wendnesdays in minutes",
            "format": "int32",
            "nullable": true
          },
          "thursday": {
            "type": "integer",
            "description": "The capacity on thursdays in minutes",
            "format": "int32",
            "nullable": true
          },
          "friday": {
            "type": "integer",
            "description": "The capacity on fridays in minutes",
            "format": "int32",
            "nullable": true
          },
          "saturday": {
            "type": "integer",
            "description": "The capacity on saturdays in minutes",
            "format": "int32",
            "nullable": true
          },
          "sunday": {
            "type": "integer",
            "description": "The capacity on sundays in minutes",
            "format": "int32",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "description": "The user who has created this user capactity settings item",
            "nullable": true
          },
          "createdById": {
            "type": "string",
            "description": "The id of the user who has created this user capactity settings item",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "description": "The timestamp of user capactity settings item creation",
            "nullable": true
          },
          "updatedBy": {
            "type": "string",
            "description": "The user who has updated this user capactity settings item last",
            "nullable": true
          },
          "updatedById": {
            "type": "string",
            "description": "The id of the user who has updated this user capactity settings item last",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "description": "The timestamp of last update",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MemberWorkingTimeUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "mondayCapacity": {
            "type": "integer",
            "description": "The capacity on mondays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "tuesdayCapacity": {
            "type": "integer",
            "description": "The capacity on tuesdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "wednesdayCapacity": {
            "type": "integer",
            "description": "The capacity on wendnesdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "thursdayCapacity": {
            "type": "integer",
            "description": "The capacity on thursdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "fridayCapacity": {
            "type": "integer",
            "description": "The capacity on fridays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "saturdayCapacity": {
            "type": "integer",
            "description": "The capacity on saturdays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "sundayCapacity": {
            "type": "integer",
            "description": "The capacity on sundays in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The startdate",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "The enddate",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the working time to update",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this working time",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "MemberWorkingTimeUpdateMemberWorkingTimes": {
        "required": [
          "memberWorkingTime"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "memberWorkingTime": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberWorkingTimeUpdate"
            },
            "description": "The working times to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "ModifyProjectAccessData": {
        "type": "object",
        "properties": {
          "add": {
            "$ref": "#/components/schemas/AddAccess"
          },
          "remove": {
            "$ref": "#/components/schemas/RemoveAccess"
          }
        },
        "additionalProperties": false
      },
      "ModifyTaskAccessData": {
        "type": "object",
        "properties": {
          "add": {
            "$ref": "#/components/schemas/AddAccess"
          },
          "remove": {
            "$ref": "#/components/schemas/RemoveAccess"
          }
        },
        "additionalProperties": false
      },
      "ProjectCreate": {
        "required": [
          "phaseId",
          "title",
          "typeId"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the project",
            "default": null,
            "nullable": true
          },
          "goal": {
            "type": "string",
            "description": "Description of the project",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the project",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End date of the project",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "departmentId": {
            "type": "integer",
            "description": "The department for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "locationId": {
            "type": "integer",
            "description": "The location for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "projectManager": {
            "type": "string",
            "description": "Project managers (comma separated)",
            "default": null,
            "nullable": true
          },
          "benefit": {
            "type": "string",
            "description": "Benefit of the project",
            "default": null,
            "nullable": true
          },
          "statusId": {
            "type": "integer",
            "description": "The status for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "workflowId": {
            "type": "integer",
            "description": "The workflow to use for this project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "description": "The id of a project to use as parent. Use empty value to remove parent.",
            "default": null,
            "nullable": true
          },
          "budget": {
            "type": "number",
            "description": "Budget for the project",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "Currency for the project (EUR, USD, CHF, CAD, GBP, AUD)",
            "default": null,
            "nullable": true
          },
          "hourlyRate": {
            "type": "number",
            "description": "Hourly rate to use for the project",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "usePersonalHourlyRates": {
            "type": "boolean",
            "description": "Use personal hourly rates for the project",
            "default": null,
            "nullable": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Block time recording for the project",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "Title for the project",
            "default": null
          },
          "phaseId": {
            "type": "integer",
            "description": "Folder for the project",
            "format": "int32",
            "default": null
          },
          "typeId": {
            "type": "integer",
            "description": "Type for the project",
            "format": "int32",
            "default": null
          },
          "externalId": {
            "type": "string",
            "description": "The external id to identify the project",
            "default": null,
            "nullable": true
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectCreateProjects": {
        "required": [
          "project"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "externalIdReference": {
            "type": "string",
            "description": "The reference to a flavor",
            "default": null,
            "nullable": true
          },
          "project": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectCreate"
            },
            "description": "The projects to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "ProjectFromTemplate": {
        "required": [
          "folder",
          "projectType",
          "title"
        ],
        "type": "object",
        "properties": {
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "Title for the project"
          },
          "folder": {
            "minLength": 1,
            "type": "string",
            "description": ""
          },
          "projectType": {
            "minLength": 1,
            "type": "string",
            "description": "The project type to use"
          },
          "isPrivate": {
            "type": "boolean",
            "description": ""
          },
          "startDate": {
            "type": "string",
            "description": "New start date if not used from template",
            "format": "date-time"
          },
          "statusId": {
            "type": "integer",
            "description": "The status id",
            "format": "int32"
          },
          "code": {
            "type": "string",
            "description": "The project id (code)",
            "nullable": true
          },
          "options": {
            "$ref": "#/components/schemas/ProjectFromTemplateOptions"
          }
        },
        "additionalProperties": false
      },
      "ProjectFromTemplateOptions": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "boolean",
            "description": "Use start date from template",
            "default": true
          },
          "adjustTaskDates": {
            "type": "boolean",
            "description": "Adjust task dates",
            "default": true
          },
          "tasks": {
            "type": "boolean",
            "description": "Import tasks",
            "default": true
          },
          "flavors": {
            "type": "boolean",
            "description": "Import flavors",
            "default": true
          },
          "labels": {
            "type": "boolean",
            "description": "Import labels",
            "default": true
          },
          "manager": {
            "type": "boolean",
            "description": "Import manager",
            "default": true
          },
          "tasksWorkflow": {
            "type": "boolean",
            "description": "Import tasks workflow",
            "default": true
          },
          "tasksTemplate": {
            "type": "boolean",
            "description": "Import tasks template",
            "default": true
          },
          "folderTasksTemplate": {
            "type": "boolean",
            "description": "Import folder tasks template",
            "default": true
          },
          "viewSettings": {
            "type": "boolean",
            "description": "Import view settings",
            "default": true
          },
          "budget": {
            "type": "boolean",
            "description": "Import budget",
            "default": true
          },
          "location": {
            "type": "boolean",
            "description": "Import location",
            "default": true
          },
          "description": {
            "type": "boolean",
            "description": "Import description",
            "default": true
          },
          "hourlyRate": {
            "type": "boolean",
            "description": "Import hourly rate",
            "default": true
          },
          "goal": {
            "type": "boolean",
            "description": "Import goal",
            "default": true
          },
          "benefit": {
            "type": "boolean",
            "description": "Import benefit",
            "default": true
          },
          "observers": {
            "type": "boolean",
            "description": "Import observers",
            "default": true
          },
          "permissions": {
            "type": "boolean",
            "description": "Import permissions",
            "default": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Import block time recording",
            "default": true
          },
          "markedColumns": {
            "type": "boolean",
            "description": "Import marked columns",
            "default": true
          },
          "columnDescriptions": {
            "type": "boolean",
            "description": "Import column descriptions",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "ProjectPermissionExportItem": {
        "type": "object",
        "properties": {
          "isLocked": {
            "type": "boolean",
            "description": "Item is locked",
            "default": false
          },
          "isPrivate": {
            "type": "boolean",
            "description": "Item is private",
            "default": false
          },
          "lockedBy": {
            "type": "string",
            "description": "Item was locked by",
            "default": null,
            "nullable": true
          },
          "lockedById": {
            "type": "string",
            "description": "Item was locked by id",
            "default": null,
            "nullable": true
          },
          "privateUsers": {
            "type": "string",
            "description": "A comma separated list of users with access",
            "default": null,
            "nullable": true
          },
          "privateUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids with access",
            "default": null,
            "nullable": true
          },
          "privateTeams": {
            "type": "string",
            "description": "A comma separated list of teams with access",
            "default": null,
            "nullable": true
          },
          "privateTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids with access",
            "default": null,
            "nullable": true
          },
          "canUpdateUsers": {
            "type": "string",
            "description": "A comma separated list of users who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateTeams": {
            "type": "string",
            "description": "A comma separated list of teams who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids who can update the item",
            "default": null,
            "nullable": true
          },
          "readOnlyUsers": {
            "type": "string",
            "description": "A comma separated list of users who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyTeams": {
            "type": "string",
            "description": "A comma separated list of teams who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids who can only view the item",
            "default": null,
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "description": "The project id",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title for the project",
            "default": null,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description of the project",
            "default": null,
            "nullable": true
          },
          "goal": {
            "type": "string",
            "description": "Description of the project",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the project",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End date of the project",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "description": "Folder for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "typeId": {
            "type": "integer",
            "description": "Type for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "departmentId": {
            "type": "integer",
            "description": "The department for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "locationId": {
            "type": "integer",
            "description": "The location for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "projectManager": {
            "type": "string",
            "description": "Project managers (comma separated)",
            "default": null,
            "nullable": true
          },
          "benefit": {
            "type": "string",
            "description": "Benefit of the project",
            "default": null,
            "nullable": true
          },
          "statusId": {
            "type": "integer",
            "description": "The status for the project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "workflowId": {
            "type": "integer",
            "description": "The workflow to use for this project",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "description": "The id of a project to use as parent. Use empty value to remove parent.",
            "default": null,
            "nullable": true
          },
          "budget": {
            "type": "number",
            "description": "Budget for the project",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "Currency for the project (EUR, USD, CHF, CAD, GBP, AUD)",
            "default": null,
            "nullable": true
          },
          "hourlyRate": {
            "type": "number",
            "description": "Hourly rate to use for the project",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "usePersonalHourlyRates": {
            "type": "boolean",
            "description": "Use personal hourly rates for the project",
            "default": null,
            "nullable": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Block time recording for the project",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or external id of the project",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this project",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "ProjectUpdateProjects": {
        "required": [
          "project"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "externalIdReference": {
            "type": "string",
            "description": "The reference to a flavor",
            "default": null,
            "nullable": true
          },
          "project": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectUpdate"
            },
            "description": "The projects to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "RemoveAccess": {
        "type": "object",
        "properties": {
          "users": {
            "type": "string",
            "description": "A comma separated list of teams (name or id)",
            "default": null,
            "nullable": true
          },
          "teams": {
            "type": "string",
            "description": "A comma separated list of teams (name or id)",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusReportCommentCreate": {
        "required": [
          "statusReportId",
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "minLength": 1,
            "type": "string",
            "description": "The text for this comment",
            "default": ""
          },
          "isInternal": {
            "type": "boolean",
            "description": "The text is internal and not visible to guests",
            "default": null,
            "nullable": true
          },
          "statusReportId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the statusreport this comment belongs to",
            "default": null
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusReportCommentCreateComments": {
        "required": [
          "comment"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusReportCommentCreate"
            },
            "description": "The comments to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "StatusReportCreate": {
        "required": [
          "overallStatusId",
          "statusDate",
          "title"
        ],
        "type": "object",
        "properties": {
          "explanation": {
            "type": "string",
            "description": "Explanation for the status report",
            "default": null,
            "nullable": true
          },
          "nextSteps": {
            "type": "string",
            "description": "Next steps",
            "default": null,
            "nullable": true
          },
          "targetDate": {
            "type": "string",
            "description": "Target date",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "timeStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Time status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "costStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Costs status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "goalStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Scope status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "progressComputed": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "Computed progress",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "progressManual": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "Manual progress",
            "format": "int32",
            "nullable": true
          },
          "isPublished": {
            "type": "boolean",
            "description": "Status report is published",
            "default": null,
            "nullable": true
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "Title for the status report",
            "default": null
          },
          "statusDate": {
            "type": "string",
            "description": "Status Date",
            "format": "date-time",
            "default": null
          },
          "overallStatusId": {
            "maximum": 7,
            "minimum": 1,
            "type": "integer",
            "description": "Overall status",
            "format": "int32",
            "default": null
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id to find an existing status rpeort for updates if available",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusReportCreateStatusReports": {
        "required": [
          "projectId",
          "statusReport"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The project  related to the status reports",
            "default": null
          },
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "statusReport": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusReportCreate"
            },
            "description": "The status reports to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "StatusReportFromTemplate": {
        "required": [
          "progressManual",
          "projectId",
          "title"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "Id of the project the status report should be created",
            "default": null
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "Title for the status report",
            "default": null
          },
          "progressManual": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "Manual progress",
            "format": "double",
            "default": null
          }
        },
        "additionalProperties": false
      },
      "StatusReportUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title for the status report",
            "default": null,
            "nullable": true
          },
          "explanation": {
            "type": "string",
            "description": "Explanation for the status report",
            "default": null,
            "nullable": true
          },
          "nextSteps": {
            "type": "string",
            "description": "Next steps",
            "default": null,
            "nullable": true
          },
          "statusDate": {
            "type": "string",
            "description": "Status date",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "targetDate": {
            "type": "string",
            "description": "Target date",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "overallStatusId": {
            "maximum": 7,
            "minimum": 1,
            "type": "integer",
            "description": "Overall status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "timeStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Time status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "costStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Costs status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "goalStatusId": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer",
            "description": "Scope status",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "progressComputed": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "Computed progress",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "progressManual": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "Manual progress",
            "format": "int32",
            "nullable": true
          },
          "isPublished": {
            "type": "boolean",
            "description": "Status report is published",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or external id of the status report",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this status report",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "StatusReportUpdateStatusReports": {
        "required": [
          "projectId",
          "statusReport"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The project  related to the status reports",
            "default": null
          },
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "statusReport": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatusReportUpdate"
            },
            "description": "The status reports to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "StatusTicket": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of this statusticket",
            "default": "",
            "nullable": true
          },
          "endpoint": {
            "type": "string",
            "description": "Name of the endpoint",
            "default": null,
            "nullable": true
          },
          "success": {
            "type": "integer",
            "description": "A value indicating success",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "A human readable text for the status of this ticket",
            "default": "Unknown",
            "nullable": true,
            "readOnly": true
          },
          "statusId": {
            "type": "integer",
            "description": "Status of this ticket",
            "format": "int32",
            "default": 0
          },
          "received": {
            "type": "string",
            "description": "Timestamp the ticket was received on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "started": {
            "type": "string",
            "description": "Timestamp the job was started on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "processed": {
            "type": "string",
            "description": "Timestamp the job ended on",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Contains messages created by the job",
            "default": null,
            "nullable": true
          },
          "comments": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "folders": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "tasks": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "projects": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "statusReports": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "timeRecords": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "absences": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "absenceTypes": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "memberWorkingTimes": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "members": {
            "$ref": "#/components/schemas/StatusTicketEndpointDetails"
          },
          "createdIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "Mapping between tempid and id if used for new created items",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusTicketEndpointDetails": {
        "type": "object",
        "properties": {
          "created": {
            "type": "integer",
            "description": "Number of items created",
            "format": "int32",
            "default": 0
          },
          "modified": {
            "type": "integer",
            "description": "Number of items modified",
            "format": "int32",
            "default": 0
          },
          "attributesModified": {
            "type": "integer",
            "description": "Total number of attributes modified",
            "format": "int32",
            "default": 0
          },
          "deleted": {
            "type": "integer",
            "description": "Number of items deleted",
            "format": "int32",
            "default": 0
          }
        },
        "additionalProperties": false
      },
      "StatusTicketReference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the created statusticket",
            "default": "",
            "nullable": true
          },
          "received": {
            "type": "string",
            "description": "The timestamp the statusticket has been created on",
            "format": "date-time",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubTaskCreate": {
        "required": [
          "title"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description for the task",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The dute date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "statusId": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "The status id for the task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cost": {
            "type": "number",
            "description": "Cost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeCost": {
            "type": "boolean",
            "description": "ComputeCost",
            "default": null,
            "nullable": true
          },
          "computePlannedCost": {
            "type": "number",
            "description": "ComputePlannedCost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "plannedCost": {
            "type": "boolean",
            "description": "PlannedCost",
            "default": null,
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "description": "Duration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "duration2": {
            "type": "number",
            "description": "Duration2",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeDuration": {
            "type": "boolean",
            "description": "ComputeDuration",
            "default": null,
            "nullable": true
          },
          "plannedDuration": {
            "type": "integer",
            "description": "PlannedDuration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "isMilestone": {
            "type": "boolean",
            "description": "The task is a milestone",
            "default": null,
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "description": "The priority for this task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "appointedPersons": {
            "type": "string",
            "description": "AppointedPersons",
            "default": null,
            "nullable": true
          },
          "folder": {
            "type": "string",
            "description": "The id or name of the folder the task resides in",
            "default": null,
            "nullable": true
          },
          "workflowId": {
            "type": "string",
            "description": "The workflow id",
            "default": null,
            "nullable": true
          },
          "workflowStatusId": {
            "type": "string",
            "description": "The workflow status id",
            "default": null,
            "nullable": true
          },
          "processId": {
            "type": "string",
            "description": "The proecess id",
            "default": null,
            "nullable": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Block time recording for the task",
            "default": null,
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "description": "The id of a task as parent",
            "default": null,
            "nullable": true
          },
          "dependentOn": {
            "type": "string",
            "description": "A comma separated list of task ids",
            "default": null,
            "nullable": true,
            "deprecated": true
          },
          "dependencySet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencySet"
            },
            "description": "An array of dependencies to add or modifiy",
            "default": null,
            "nullable": true
          },
          "dependencyRemove": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencyRemove"
            },
            "description": "An array of dependencies to remove",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "The title for the task",
            "default": null
          },
          "externalId": {
            "type": "string",
            "description": "The external id to identify the project",
            "default": null,
            "nullable": true
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "subtasks": {
            "$ref": "#/components/schemas/SubTaskCreateSubtasks"
          }
        },
        "additionalProperties": false
      },
      "SubTaskCreateSubtasks": {
        "required": [
          "task"
        ],
        "type": "object",
        "properties": {
          "task": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubTaskCreate"
            },
            "description": "The sub tasks to be created"
          }
        },
        "additionalProperties": false
      },
      "TaskCommentCreate": {
        "required": [
          "taskId",
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "minLength": 1,
            "type": "string",
            "description": "The text for this comment",
            "default": ""
          },
          "isInternal": {
            "type": "boolean",
            "description": "The text is internal and not visible to guests",
            "default": null,
            "nullable": true
          },
          "taskId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the task this comment belongs to",
            "default": null
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaskCommentCreateComments": {
        "required": [
          "comment"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCommentCreate"
            },
            "description": "The comments to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "TaskCreate": {
        "required": [
          "title"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description for the task",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The dute date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "statusId": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "The status id for the task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cost": {
            "type": "number",
            "description": "Cost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeCost": {
            "type": "boolean",
            "description": "ComputeCost",
            "default": null,
            "nullable": true
          },
          "computePlannedCost": {
            "type": "number",
            "description": "ComputePlannedCost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "plannedCost": {
            "type": "boolean",
            "description": "PlannedCost",
            "default": null,
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "description": "Duration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "duration2": {
            "type": "number",
            "description": "Duration2",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeDuration": {
            "type": "boolean",
            "description": "ComputeDuration",
            "default": null,
            "nullable": true
          },
          "plannedDuration": {
            "type": "integer",
            "description": "PlannedDuration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "isMilestone": {
            "type": "boolean",
            "description": "The task is a milestone",
            "default": null,
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "description": "The priority for this task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "appointedPersons": {
            "type": "string",
            "description": "AppointedPersons",
            "default": null,
            "nullable": true
          },
          "folder": {
            "type": "string",
            "description": "The id or name of the folder the task resides in",
            "default": null,
            "nullable": true
          },
          "workflowId": {
            "type": "string",
            "description": "The workflow id",
            "default": null,
            "nullable": true
          },
          "workflowStatusId": {
            "type": "string",
            "description": "The workflow status id",
            "default": null,
            "nullable": true
          },
          "processId": {
            "type": "string",
            "description": "The proecess id",
            "default": null,
            "nullable": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Block time recording for the task",
            "default": null,
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "description": "The id of a task as parent",
            "default": null,
            "nullable": true
          },
          "dependentOn": {
            "type": "string",
            "description": "A comma separated list of task ids",
            "default": null,
            "nullable": true,
            "deprecated": true
          },
          "dependencySet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencySet"
            },
            "description": "An array of dependencies to add or modifiy",
            "default": null,
            "nullable": true
          },
          "dependencyRemove": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencyRemove"
            },
            "description": "An array of dependencies to remove",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "The title for the task",
            "default": null
          },
          "externalId": {
            "type": "string",
            "description": "The external id to identify the project",
            "default": null,
            "nullable": true
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "subtasks": {
            "$ref": "#/components/schemas/SubTaskCreateSubtasks"
          }
        },
        "additionalProperties": false
      },
      "TaskCreateTasks": {
        "required": [
          "projectId",
          "task"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "externalIdReference": {
            "type": "string",
            "description": "The reference to a flavor",
            "default": null,
            "nullable": true
          },
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the project to use",
            "default": null
          },
          "task": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCreate"
            },
            "description": "The tasks to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "TaskDependencyRemove": {
        "required": [
          "taskId"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the task the task is depending on",
            "default": null
          }
        },
        "additionalProperties": false
      },
      "TaskDependencySet": {
        "required": [
          "taskId"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the predecessor task - the task that must be completed before the task identified in the URL can start. Note that this is the opposite end of the relationship from the `taskId` in the URL path.",
            "default": null
          },
          "type": {
            "type": "string",
            "description": "The type to use for this dependency (SS, SF, FS, FF)",
            "default": "FS",
            "nullable": true
          },
          "lag": {
            "type": "integer",
            "description": "Offset between the predecessor and successor, in days. Positive values add a buffer after the predecessor finishes, negative values (lead time) let the successor start before the predecessor finishes. Defaults to `0`.",
            "format": "int32",
            "default": 0,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaskFromTemplate": {
        "required": [
          "projectId",
          "title"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "Override status",
            "default": null
          },
          "title": {
            "minLength": 1,
            "type": "string",
            "description": "Override status",
            "default": null
          },
          "overrideStatus": {
            "type": "boolean",
            "description": "Override status",
            "default": true
          },
          "overridePriority": {
            "type": "boolean",
            "description": "Override priority",
            "default": true
          },
          "overrideWorkflow": {
            "type": "boolean",
            "description": "Override workflow",
            "default": true
          },
          "overrideWorkflowStatus": {
            "type": "boolean",
            "description": "Override workflow status",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "TaskPermissionExportItem": {
        "type": "object",
        "properties": {
          "isLocked": {
            "type": "boolean",
            "description": "Item is locked",
            "default": false
          },
          "isPrivate": {
            "type": "boolean",
            "description": "Item is private",
            "default": false
          },
          "lockedBy": {
            "type": "string",
            "description": "Item was locked by",
            "default": null,
            "nullable": true
          },
          "lockedById": {
            "type": "string",
            "description": "Item was locked by id",
            "default": null,
            "nullable": true
          },
          "privateUsers": {
            "type": "string",
            "description": "A comma separated list of users with access",
            "default": null,
            "nullable": true
          },
          "privateUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids with access",
            "default": null,
            "nullable": true
          },
          "privateTeams": {
            "type": "string",
            "description": "A comma separated list of teams with access",
            "default": null,
            "nullable": true
          },
          "privateTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids with access",
            "default": null,
            "nullable": true
          },
          "canUpdateUsers": {
            "type": "string",
            "description": "A comma separated list of users who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateTeams": {
            "type": "string",
            "description": "A comma separated list of teams who can update the item",
            "default": null,
            "nullable": true
          },
          "canUpdateTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids who can update the item",
            "default": null,
            "nullable": true
          },
          "readOnlyUsers": {
            "type": "string",
            "description": "A comma separated list of users who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyUserIds": {
            "type": "string",
            "description": "A comma separated list of user ids who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyTeams": {
            "type": "string",
            "description": "A comma separated list of teams who can only view the item",
            "default": null,
            "nullable": true
          },
          "readOnlyTeamIds": {
            "type": "string",
            "description": "A comma separated list of team ids who can only view the item",
            "default": null,
            "nullable": true
          },
          "taskId": {
            "type": "string",
            "description": "The task id",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaskUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title for the task",
            "default": null,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The description for the task",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The dute date for the task",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "statusId": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "The status id for the task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cost": {
            "type": "number",
            "description": "Cost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeCost": {
            "type": "boolean",
            "description": "ComputeCost",
            "default": null,
            "nullable": true
          },
          "computePlannedCost": {
            "type": "number",
            "description": "ComputePlannedCost",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "plannedCost": {
            "type": "boolean",
            "description": "PlannedCost",
            "default": null,
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "description": "Duration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "duration2": {
            "type": "number",
            "description": "Duration2",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "computeDuration": {
            "type": "boolean",
            "description": "ComputeDuration",
            "default": null,
            "nullable": true
          },
          "plannedDuration": {
            "type": "integer",
            "description": "PlannedDuration",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "isMilestone": {
            "type": "boolean",
            "description": "The task is a milestone",
            "default": null,
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "description": "The priority for this task",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "appointedPersons": {
            "type": "string",
            "description": "AppointedPersons",
            "default": null,
            "nullable": true
          },
          "folder": {
            "type": "string",
            "description": "The id or name of the folder the task resides in",
            "default": null,
            "nullable": true
          },
          "workflowId": {
            "type": "string",
            "description": "The workflow id",
            "default": null,
            "nullable": true
          },
          "workflowStatusId": {
            "type": "string",
            "description": "The workflow status id",
            "default": null,
            "nullable": true
          },
          "processId": {
            "type": "string",
            "description": "The proecess id",
            "default": null,
            "nullable": true
          },
          "blockTimeRecording": {
            "type": "boolean",
            "description": "Block time recording for the task",
            "default": null,
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "description": "The id of a task as parent",
            "default": null,
            "nullable": true
          },
          "dependentOn": {
            "type": "string",
            "description": "A comma separated list of task ids",
            "default": null,
            "nullable": true,
            "deprecated": true
          },
          "dependencySet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencySet"
            },
            "description": "An array of dependencies to add or modifiy",
            "default": null,
            "nullable": true
          },
          "dependencyRemove": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskDependencyRemove"
            },
            "description": "An array of dependencies to remove",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or external id of the project",
            "default": null
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this task",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "TaskUpdateTasks": {
        "required": [
          "projectId",
          "task"
        ],
        "type": "object",
        "properties": {
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "noFeed": {
            "type": "boolean",
            "description": "Prevents creating a change feed.",
            "default": false
          },
          "externalIdReference": {
            "type": "string",
            "description": "The reference to a flavor",
            "default": null,
            "nullable": true
          },
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the project to use",
            "default": null
          },
          "task": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskUpdate"
            },
            "description": "The tasks to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "TimeRecordCreate": {
        "required": [
          "date",
          "taskId",
          "userId"
        ],
        "type": "object",
        "properties": {
          "statusId": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "The status id of the timerecord (0 = submitted, 1 = approved, 2 = rejected)",
            "format": "int32",
            "default": 0
          },
          "description": {
            "type": "string",
            "description": "A description for the time record",
            "default": null,
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The timerecord is locked",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "userId": {
            "minLength": 1,
            "type": "string",
            "description": "The id or email of the user",
            "default": null
          },
          "taskId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the task the timerecord is related to",
            "default": null
          },
          "date": {
            "type": "string",
            "description": "The date",
            "format": "date-time",
            "default": null
          },
          "duration": {
            "type": "integer",
            "description": "The duration in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start time",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End time",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "tempId": {
            "type": "integer",
            "description": "A temporary id returned in the ticket with it's corresponding id",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "An external id to identify an absence",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TimeRecordCreateTimeRecords": {
        "required": [
          "projectId",
          "timeRecord"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The project containing the tasks related to the time records",
            "default": null
          },
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "timeRecord": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeRecordCreate"
            },
            "description": "The time records to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "TimeRecordExportItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "nullable": true
          },
          "projectCode": {
            "type": "string",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "hourlyRate": {
            "type": "string",
            "nullable": true
          },
          "taskId": {
            "type": "string",
            "nullable": true
          },
          "taskCode": {
            "type": "string",
            "nullable": true
          },
          "taskName": {
            "type": "string",
            "nullable": true
          },
          "actualCost": {
            "type": "string",
            "nullable": true
          },
          "billing": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "string",
            "nullable": true
          },
          "user": {
            "type": "string",
            "nullable": true
          },
          "locked": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "nullable": true
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TimeRecordUpdate": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "statusId": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "The status id of the timerecord (0 = submitted, 1 = approved, 2 = rejected)",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the time record",
            "default": null,
            "nullable": true
          },
          "locked": {
            "type": "boolean",
            "description": "The timerecord is locked",
            "default": null,
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "description": "The duration in minutes",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start time",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End time",
            "format": "date-time",
            "default": null,
            "nullable": true
          },
          "flavor": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flavor"
            },
            "description": "An array of flavors",
            "default": null,
            "nullable": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "The id or external id of the time record"
          },
          "useExternalId": {
            "type": "boolean",
            "description": "Use the external id to identify this time record",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "TimeRecordUpdateTimeRecords": {
        "required": [
          "projectId",
          "timeRecord"
        ],
        "type": "object",
        "properties": {
          "projectId": {
            "minLength": 1,
            "type": "string",
            "description": "The project containing the tasks related to the time records",
            "default": null
          },
          "timezoneId": {
            "type": "string",
            "description": "The timezone used for conversions (see /api/integration/timezones/json)",
            "default": "W. Europe Standard Time",
            "nullable": true
          },
          "timeRecord": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeRecordUpdate"
            },
            "description": "The time records to be created or updated"
          }
        },
        "additionalProperties": false
      },
      "Timezone": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the timezone",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "description": "The name of the timezone",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "APIKey": {
        "type": "apiKey",
        "description": "smenso API Token",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Absences",
      "description": "Endpoints for absences",
      "x-displayName": "Absences"
    },
    {
      "name": "Attachments",
      "description": "Endpoints for attachments",
      "x-displayName": "Attachments"
    },
    {
      "name": "Comments",
      "description": "Endpoints for comments",
      "x-displayName": "Comments"
    },
    {
      "name": "Tickets / Timezones",
      "description": "Endpoints for  status tickets and other helpers",
      "x-displayName": "Tickets / Timezones"
    },
    {
      "name": "Flavors",
      "description": "Endpoints for flavors",
      "x-displayName": "Flavors"
    },
    {
      "name": "Folders",
      "description": "Endpoints for folders",
      "x-displayName": "Folders"
    },
    {
      "name": "Workspace",
      "x-displayName": "Workspace"
    },
    {
      "name": "Privacy / Permissions",
      "description": "Endpoints for privacy and permissions",
      "x-displayName": "Privacy / Permissions"
    },
    {
      "name": "Projects",
      "description": "Endpoints for projects",
      "x-displayName": "Projects"
    },
    {
      "name": "Settings",
      "description": "Endpoints for settings",
      "x-displayName": "Settings"
    },
    {
      "name": "Status reports",
      "description": "Endpoints for status reports",
      "x-displayName": "Status reports"
    },
    {
      "name": "Tasks",
      "description": "Endpoints for tasks",
      "x-displayName": "Tasks"
    },
    {
      "name": "Time records",
      "description": "Endpoints for time records",
      "x-displayName": "Time records"
    }
  ]
}