{
  "info": {
    "title": "Wrike API v4",
    "description": "Wrike API based on Wrike Official Spec v4 (release 1.3)",
    "version": "1.3.0"
  },
  "host": "app-eu.wrike.com",
  "basePath": "/api/v4",
  "tags": [
    {
      "name": "Access Roles"
    },
    {
      "name": "Account"
    },
    {
      "name": "Approvals"
    },
    {
      "name": "Async job"
    },
    {
      "name": "Attachments"
    },
    {
      "name": "Audit Log"
    },
    {
      "name": "Bookings"
    },
    {
      "name": "Colors"
    },
    {
      "name": "Comments"
    },
    {
      "name": "Contacts"
    },
    {
      "name": "Copy Work Schedule"
    },
    {
      "name": "Custom Fields"
    },
    {
      "name": "Custom Item Types"
    },
    {
      "name": "Data Export"
    },
    {
      "name": "Data export schema"
    },
    {
      "name": "Dependencies"
    },
    {
      "name": "EDiscovery"
    },
    {
      "name": "Folder Blueprints"
    },
    {
      "name": "Folders & Projects"
    },
    {
      "name": "Groups"
    },
    {
      "name": "Hourly rates"
    },
    {
      "name": "Hourly rates provision"
    },
    {
      "name": "IDs"
    },
    {
      "name": "Invitations"
    },
    {
      "name": "Job Roles"
    },
    {
      "name": "Placeholders"
    },
    {
      "name": "Rollups"
    },
    {
      "name": "Spaces"
    },
    {
      "name": "Task Blueprints"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "Timelog categories"
    },
    {
      "name": "Timelogs"
    },
    {
      "name": "Timesheet Submission Rules"
    },
    {
      "name": "User Schedule exceptions"
    },
    {
      "name": "User Types"
    },
    {
      "name": "Users"
    },
    {
      "name": "Version"
    },
    {
      "name": "Work Schedule exceptions"
    },
    {
      "name": "Work Schedules"
    },
    {
      "name": "Workflows"
    }
  ],
  "paths": {
    "/access_roles": {
      "get": {
        "summary": "Get Access Roles",
        "deprecated": false,
        "description": "Access roles.\n\n<b>Scopes:</b> amReadOnlyAccessRole",
        "operationId": "GET_access_roles_empty",
        "tags": [
          "Access Roles"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AccessRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/account": {
      "get": {
        "summary": "Query Accounts",
        "deprecated": false,
        "description": "Returns current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_account_empty",
        "tags": [
          "Account"
        ],
        "parameters": [
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata filter, exact match for metadata key or key-value pair",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Account metadata\n* `customFields` - Account custom fields\n* `subscription` - Account subscription",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Account"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Account",
        "deprecated": false,
        "description": "Update current account.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_account_empty",
        "tags": [
          "Account"
        ],
        "parameters": [
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be updated. Limit : 100",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Account"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/approvals": {
      "get": {
        "summary": "Get approvals",
        "deprecated": false,
        "description": "Reads approvals by filter. When no filter parameters passed returns all approvals shared with a user.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_approvals_empty",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "statuses",
            "in": "query",
            "description": "Get approvals for specified statuses\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "enum": [
              "Draft",
              "Approved",
              "Rejected",
              "Cancelled",
              "Pending"
            ],
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvers",
            "in": "query",
            "description": "Approvers filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "pendingApprovers",
            "in": "query",
            "description": "Pending approvers filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned approvals",
            "required": false,
            "type": "number"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "Next page token, overrides any other parameters in request",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/approvals": {
      "get": {
        "summary": "Get approvals",
        "deprecated": false,
        "description": "Reads all approvals on folder/project.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_approvals",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create approval",
        "deprecated": false,
        "description": "Create an approval for folder/project. Creates approval in draft status when no approvers assigned. Otherwise creates in pending status. Approvals created via API will not be affected by workflow automation, e.g. task status will not be automatically transitioned when approval finishes.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_approvals",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "Due date",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvers",
            "in": "query",
            "description": "Assign approvers",
            "required": false,
            "type": "string"
          },
          {
            "name": "attachments",
            "in": "query",
            "description": "List of origin version attachments to set in approval",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnApprove",
            "in": "query",
            "description": "Is finish approval automatically when all approvers have approved. Set to true by default",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnReject",
            "in": "query",
            "description": "Is finish approval automatically when some of approvers have rejected. Set to true by default",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/approvals": {
      "get": {
        "summary": "Get approvals",
        "deprecated": false,
        "description": "Reads all approvals on task.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_approvals",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create approval",
        "deprecated": false,
        "description": "Create an approval for task. Creates approval in draft status when no approvers assigned. Otherwise creates in pending status. Approvals created via API will not be affected by workflow automation, e.g. task status will not be automatically transitioned when approval finishes.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_tasks_single_approvals",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "Due date",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvers",
            "in": "query",
            "description": "Assign approvers",
            "required": false,
            "type": "string"
          },
          {
            "name": "attachments",
            "in": "query",
            "description": "List of origin version attachments to set in approval",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnApprove",
            "in": "query",
            "description": "Is finish approval automatically when all approvers have approved. Set to true by default",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnReject",
            "in": "query",
            "description": "Is finish approval automatically when some of approvers have rejected. Set to true by default",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/approvals/{approvalId}": {
      "get": {
        "summary": "Get approvals",
        "deprecated": false,
        "description": "Reads approvals by ids.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_approvals_multi",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "approvalId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Cancel approval",
        "deprecated": false,
        "description": "Cancel approval.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_approvals_single",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "approvalId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update approval",
        "deprecated": false,
        "description": "Update approval.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_approvals_single",
        "tags": [
          "Approvals"
        ],
        "parameters": [
          {
            "name": "approvalId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "description",
            "in": "query",
            "description": "description",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "due date",
            "required": false,
            "type": "string"
          },
          {
            "name": "addApprovers",
            "in": "query",
            "description": "Assign approvers",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeApprovers",
            "in": "query",
            "description": "Remove approvers",
            "required": false,
            "type": "string"
          },
          {
            "name": "addAttachments",
            "in": "query",
            "description": "Add origin version attachments to approval",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeAttachments",
            "in": "query",
            "description": "Remove origin version attachments from approval",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnApprove",
            "in": "query",
            "description": "Is finish approval automatically when all approvers have approved",
            "required": false,
            "type": "string"
          },
          {
            "name": "autoFinishOnReject",
            "in": "query",
            "description": "Is finish approval automatically when some of approvers have rejected",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Approval"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/async_job/{asyncJobId}": {
      "get": {
        "summary": "Get async job",
        "deprecated": false,
        "description": "Get Async job specified by id.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_async_job_single",
        "tags": [
          "Async job"
        ],
        "parameters": [
          {
            "name": "asyncJobId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AsyncJob"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/attachments": {
      "get": {
        "summary": "Get Attachments",
        "deprecated": false,
        "description": "Return all Attachments of account tasks and folders.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_attachments_empty",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "versions",
            "in": "query",
            "description": "Get attachments with previous versions",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter. Required to request attachments in account. Time range duration should be less than 31 day",
            "required": false,
            "type": "string"
          },
          {
            "name": "withUrls",
            "in": "query",
            "description": "Get attachment URLs. The link for attachment from Wrike is valid for 24 hours from when you make the request",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/attachments": {
      "get": {
        "summary": "Get Attachments",
        "deprecated": false,
        "description": "Returns all Attachments of a folder.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_attachments",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "versions",
            "in": "query",
            "description": "Get attachments with previous versions",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter. Required to request attachments in account. Time range duration should be less than 31 day",
            "required": false,
            "type": "string"
          },
          {
            "name": "withUrls",
            "in": "query",
            "description": "Get attachment URLs. The link for attachment from Wrike is valid for 24 hours from when you make the request",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Wrike Attachment",
        "deprecated": false,
        "description": "Add an attachment to a folder.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_attachments",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/attachments": {
      "get": {
        "summary": "Get Attachments",
        "deprecated": false,
        "description": "Returns all Attachments of a task.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_attachments",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "versions",
            "in": "query",
            "description": "Get attachments with previous versions",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter. Required to request attachments in account. Time range duration should be less than 31 day",
            "required": false,
            "type": "string"
          },
          {
            "name": "withUrls",
            "in": "query",
            "description": "Get attachment URLs. The link for attachment from Wrike is valid for 24 hours from when you make the request",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Wrike Attachment",
        "deprecated": false,
        "description": "Add an attachment to a task.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_tasks_single_attachments",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/attachments/{attachmentId}/download": {
      "get": {
        "summary": "Download Wrike Attachment",
        "deprecated": false,
        "description": "Returns attachment content. It can be accessed via /attachments/id/download/name.ext URL. In this case, 'name.ext' will be returned as the file name.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_attachments_single_download",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/attachments/{attachmentId}/preview": {
      "get": {
        "summary": "Download Attachment Preview",
        "deprecated": false,
        "description": "Returns Preview for the attachment. The preview can be accessed via /attachments/id/preview/name.ext URL. In this case, 'name.ext' will be returned as the file name.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_attachments_single_preview",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "size",
            "in": "query",
            "description": "Preview dimensions\n* `w44` - Width = 44, height = auto\n* `w300` - Width = 300, height = auto\n* `w400` - Width = 400, height = auto\n* `w100` - Width = 100, height = auto\n* `h400` - Width = auto, height = 400\n* `w200` - Width = 200, height = auto\n* `full` - Full size",
            "required": false,
            "enum": [
              "w44",
              "w300",
              "w400",
              "w100",
              "h400",
              "w200",
              "full"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/attachments/{attachmentId}/url": {
      "get": {
        "summary": "Get Access URL for Attachment",
        "deprecated": false,
        "description": "Public URL to an attachment from Wrike or an external service. The link for attachment from Wrike is valid for 24 hours from when you make the request.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_attachments_single_url",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AttachmentUrl"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/attachments/{attachmentId}": {
      "get": {
        "summary": "Get Attachments",
        "deprecated": false,
        "description": "Returns complete information about multiple attachments.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_attachments_multi",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "versions",
            "in": "query",
            "description": "Get attachments with previous versions",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Attachment",
        "deprecated": false,
        "description": "Delete Attachment by ID.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_attachments_single",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Attachment",
        "deprecated": false,
        "description": "Update previously uploaded Attachment with new version.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_attachments_single",
        "tags": [
          "Attachments"
        ],
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "url",
            "in": "query",
            "description": "Download attachment by url",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Attachment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/audit_log": {
      "get": {
        "summary": "Get Audit Log",
        "deprecated": false,
        "description": "Get <a href=\"https://help.wrike.com/hc/en-us/articles/209606309-Audit-Log-Reports\">Audit Log Reports</a>, that contains audit trail for actions in the account. Available to Enterprise admins with \"Create user activity reports\" right.\n\n<b>Scopes:</b> amReadOnlyAuditLog",
        "operationId": "GET_audit_log_empty",
        "tags": [
          "Audit Log"
        ],
        "parameters": [
          {
            "name": "eventDate",
            "in": "query",
            "description": "Event date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "operations",
            "in": "query",
            "description": "Operations filter\n* `SecondFactorEnabled` - \n* `CustomFieldRemoved` - \n* `CalendarExternalLinksActivated` - \n* `TaskDuplication` - \n* `GanttSnapshotDeleted` - \n* `CalendarExternalLinkDeleted` - \n* `TaskRestored` - \n* `CalendarExternalLinksDeactivated` - \n* `PowerBIPublicLinkDeleted` - \n* `ApprovalCanceled` - \n* `RequestFormCreated` - \n* `SamlClearPasswordForSamlUsers` - \n* `OneTimePasswordUsed` - \n* `AnalyzeWidgetPublicLinkCreated` - \n* `TaskErased` - \n* `InvitationPolicyChanged` - \n* `CalendarExternalLinkCreated` - \n* `UserTaskGroupRolesChanged` - \n* `UserJoinedSpace` - \n* `SamlSSOSettingsChanged` - \n* `UserFailLogin` - \n* `SamlSSODisabled` - \n* `AdminMailSettingsChanged` - \n* `CustomFieldRemovedFromFolder` - \n* `UserLoggedIn` - \n* `UserRoleChanged` - \n* `CustomFieldAddedToFolder` - \n* `UserTypeModified` - \n* `AccessCodeAccepted` - \n* `PublicLinkExpirationChanged` - \n* `UserLogout` - \n* `PowerBIPublicLinkCreated` - \n* `GuestReviewerRevoked` - \n* `ApprovedIpRangesOrSubnetsChanged` - \n* `TaskScheduleChanged` - \n* `CustomFieldRestored` - \n* `AccountDeleted` - \n* `UserAdminPermissionsChanged` - \n* `AttachDeleted` - \n* `SpaceDeleted` - \n* `AuditReportCreated` - \n* `UserTypeCreated` - \n* `ExcelExportCreated` - \n* `AdminLoggedInAsUser` - \n* `WorkflowCreated` - \n* `TaskUnsharedFromAuthor` - \n* `AccessAuditReportCsvExport` - \n* `AttachMarkAsFinal` - \n* `OneTimePasswordStatusSwitched` - \n* `ApproverAdded` - \n* `UserLeftSpace` - \n* `TaskUnarchived` - \n* `ApprovalDescriptionChanged` - \n* `GroupParentRemoved` - \n* `GuestReviewAccountSettingsChanged` - \n* `WorkflowDeleted` - \n* `PasswordPolicyModified` - \n* `GroupInviteeAdded` - \n* `UserRestored` - \n* `ApprovalDueDateChanged` - \n* `AnalyzeWidgetPublicLinkDeleted` - \n* `SpaceArchivedUnarchived` - \n* `TaskStatusChanged` - \n* `TaskCommentChanged` - \n* `AccessRoleDeleted` - \n* `TaskUnassigned` - \n* `AnalyzePublicLinkCreated` - \n* `GuestReviewRejected` - \n* `TaskUnshared` - \n* `PasswordChanged` - \n* `RequestFormDeleted` - \n* `AttemptDownloadInfectedAttach` - \n* `InvitationSend` - \n* `AccessRoleModified` - \n* `SpaceCreated` - \n* `ApprovedDomainsChanged` - \n* `TimesheetStatusChanged` - \n* `TimelogLocked` - \n* `UserRevokeAdmin` - \n* `RecycleBinErased` - \n* `ApproverRemoved` - \n* `UserDeleted` - \n* `GanttSnapshotCreated` - \n* `GroupMemberRemoved` - \n* `UserProfileUpdated` - \n* `SecondFactorUsageReportCreated` - \n* `SecondFactorDisabled` - \n* `AttachViewed` - \n* `AccessRoleCreated` - \n* `GroupMemberAdded` - \n* `AccountDataExportRequested` - \n* `SamlSSOMetadataChanged` - \n* `GroupRenamed` - \n* `PublicLinkCreated` - \n* `TaskShared` - \n* `AccountModified` - \n* `PublicLinkPasswordRequested` - \n* `WorkflowModified` - \n* `PublicLinkDeleted` - \n* `AccessCodeDeclined` - \n* `AnalyzeWidgetPublicLinkAccessed` - \n* `ApprovalCreated` - \n* `Oauth2AccessRevoked` - \n* `TaskParentRemoved` - \n* `AntivirusDeletedInfectedAttach` - \n* `RequestFormModified` - \n* `GroupInviteeRemoved` - \n* `GuestReviewerInvited` - \n* `TaskArchived` - \n* `AccountBackupCreated` - \n* `FeedCreated` - \n* `AccessCodeGenerated` - \n* `UserDeactivated` - \n* `AttachCopied` - \n* `GroupParentAdded` - \n* `GuestReviewerChanged` - \n* `TimelogUnlocked` - \n* `TaskCreated` - \n* `OneTimePasswordRevoked` - \n* `ApprovalFinished` - \n* `TaskAssigned` - \n* `OneTimePasswordCreated` - \n* `GroupCreated` - \n* `TimesheetCreated` - \n* `UsersAndGroupsExported` - \n* `AttachMoved` - \n* `CustomFieldCreated` - \n* `AutomatedIntegrationsExecution` - \n* `PowerBIPublicLinkAccessed` - \n* `AttachUnmarkAsFinal` - \n* `AnalyzePublicLinkAccessed` - \n* `GroupDeleted` - \n* `CustomFieldModified` - \n* `TaskCommentDeleted` - \n* `AnalyzePublicLinkDeleted` - \n* `UserTypeDeleted` - \n* `Oauth2AccessGranted` - \n* `UserGrantAdmin` - \n* `PublicLinksAccountSettingsChanged` - \n* `TaskDeleted` - \n* `InvitationAccepted` - \n* `AccountDataExportGenerated` - \n* `SamlSSOEnabled` - \n* `PublicLinkPasswordChanged` - \n* `TaskParentAdded` - \n* `ApprovalDecisionMade` - \n* `GuestReviewAccepted` - \n* `UserCustomFieldValueChanged` - \n* `UserActivated` - \n* `AttachUploaded` - \n* `AttachDownloaded` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "Next page token, overrides any other parameters in request",
            "required": false,
            "type": "string"
          },
          {
            "name": "objectType",
            "in": "query",
            "description": "Filter by object type. Requires both eventDate and operations to be specified.\n* `Account` - \n* `Group` - \n* `AnalyzeReportWidget` - \n* `Task` - \n* `User` - \n* `WorkspaceSnapshot` - \n* `CalendarExternalLink` - \n* `Attachment` - \n* `Folder` - \n* `DataExport` - \n* `PowerBIEntity` - \n* `Space` - \n* `Comment` - \n* `RequestForm` - \n* `AccessRole` - \n* `Timesheet` - \n* `Invitation` - \n* `Workflow` - \n* `AnalyzeReport` - \n* `Oauth2Client` - \n* `Project` - \n* `PublicLink` - \n* `UserRole` - \n* `CustomField` - \n* `UserType` - ",
            "required": false,
            "enum": [
              "Account",
              "Group",
              "AnalyzeReportWidget",
              "Task",
              "User",
              "WorkspaceSnapshot",
              "CalendarExternalLink",
              "Attachment",
              "Folder",
              "DataExport",
              "PowerBIEntity",
              "Space",
              "Comment",
              "RequestForm",
              "AccessRole",
              "Timesheet",
              "Invitation",
              "Workflow",
              "AnalyzeReport",
              "Oauth2Client",
              "Project",
              "PublicLink",
              "UserRole",
              "CustomField",
              "UserType"
            ],
            "type": "string"
          },
          {
            "name": "objectIds",
            "in": "query",
            "description": "Filter by object ids. Requires objectType to be specified. Accepts up to 10 ids.",
            "required": false,
            "type": "string"
          },
          {
            "name": "users",
            "in": "query",
            "description": "Filter by users ids. Accepts up to 10 ids.",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AuditLog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/bookings": {
      "get": {
        "summary": "Query Bookings",
        "deprecated": false,
        "description": "Returns list of all bookings in account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_bookings_empty",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date",
            "required": false,
            "type": "string"
          },
          {
            "name": "finishDate",
            "in": "query",
            "description": "Finish date",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibleIds",
            "in": "query",
            "description": "IDs of responsible users. Limit : 15000",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholderIds",
            "in": "query",
            "description": "IDs of responsible placeholders. Limit : 15000",
            "required": false,
            "type": "string"
          },
          {
            "name": "showDescendants",
            "in": "query",
            "description": "If true return bookings from descendant folders",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/bookings": {
      "get": {
        "summary": "Query Bookings",
        "deprecated": false,
        "description": "Get bookings from folder.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_bookings",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date",
            "required": false,
            "type": "string"
          },
          {
            "name": "finishDate",
            "in": "query",
            "description": "Finish date",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibleIds",
            "in": "query",
            "description": "IDs of responsible users. Limit : 15000",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholderIds",
            "in": "query",
            "description": "IDs of responsible placeholders. Limit : 15000",
            "required": false,
            "type": "string"
          },
          {
            "name": "showDescendants",
            "in": "query",
            "description": "If true return bookings from descendant folders",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Booking",
        "deprecated": false,
        "description": "Create Booking.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_bookings",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "bookingDates",
            "in": "query",
            "description": "Booking dates",
            "required": true,
            "type": "string"
          },
          {
            "name": "responsibleId",
            "in": "query",
            "description": "ID of responsible",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "responsiblePlaceholderId",
            "in": "query",
            "description": "ID of responsible placeholder",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "effortAllocation",
            "in": "query",
            "description": "Effort allocation",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/bookings/{bookingId}": {
      "get": {
        "summary": "Query Bookings",
        "deprecated": false,
        "description": "Get bookings list.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_bookings_multi",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Booking",
        "deprecated": false,
        "description": "Delete booking by Id.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_bookings_single",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Booking",
        "deprecated": false,
        "description": "Update Booking.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_bookings_single",
        "tags": [
          "Bookings"
        ],
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "bookingDates",
            "in": "query",
            "description": "Booking dates",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibleId",
            "in": "query",
            "description": "ID of responsible",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "responsiblePlaceholderId",
            "in": "query",
            "description": "ID of responsible placeholder",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "effortAllocation",
            "in": "query",
            "description": "Effort allocation",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Booking"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/colors": {
      "get": {
        "summary": "Query Colors",
        "deprecated": false,
        "description": "Get color name - code mapping.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_colors_empty",
        "tags": [
          "Colors"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/ColorsInfo"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/comments": {
      "get": {
        "summary": "Get Comments",
        "deprecated": false,
        "description": "Get all comments in current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_comments_empty",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Comment type filter\n* `Email` - \n* `Regular` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Deprecated because this parameter filters by created date instead of updated date. Please use the createdDate parameter instead",
            "required": false,
            "type": "string"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Use the createdDate parameter to get all comments created within a specific date range. The date range must be 7 days or shorter",
            "required": false,
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of returned comments",
            "required": false,
            "type": "number"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `type` - Comment type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/comments": {
      "get": {
        "summary": "Get Comments",
        "deprecated": false,
        "description": "Get folder comments.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_comments",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Comment type filter\n* `Email` - \n* `Regular` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `type` - Comment type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Comment",
        "deprecated": false,
        "description": "Create a comment in the folder. The virtual Root and Recycle Bin folders cannot have comments.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_comments",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "text",
            "in": "query",
            "description": "Comment text, can not be empty. Supported HTML tags can be found in <a href=\"https://developers.wrike.com/special-syntax\">Special syntax</a>",
            "required": true,
            "type": "string"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Treat comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/comments": {
      "get": {
        "summary": "Get Comments",
        "deprecated": false,
        "description": "Get task comments.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_comments",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Comment type filter\n* `Email` - \n* `Regular` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `type` - Comment type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Comment",
        "deprecated": false,
        "description": "Create comment in task.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_tasks_single_comments",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "text",
            "in": "query",
            "description": "Comment text, can not be empty. Supported HTML tags can be found in <a href=\"https://developers.wrike.com/special-syntax\">Special syntax</a>",
            "required": true,
            "type": "string"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Treat comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/comments/{commentId}": {
      "get": {
        "summary": "Get Comments",
        "deprecated": false,
        "description": "Get single or multiple comments by their IDs.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_comments_multi",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Comment type filter\n* `Email` - \n* `Regular` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `type` - Comment type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Comment",
        "deprecated": false,
        "description": "Delete comment by ID.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_comments_single",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Comment",
        "deprecated": false,
        "description": "Update Comment by ID. A comment is available for updates only during the 5 minutes after creation.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_comments_single",
        "tags": [
          "Comments"
        ],
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "text",
            "in": "query",
            "description": "Comment text, can not be empty. Supported HTML tags can be found in <a href=\"https://developers.wrike.com/special-syntax\">Special syntax</a>",
            "required": true,
            "type": "string"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Comment"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts": {
      "get": {
        "summary": "Query Contacts",
        "deprecated": false,
        "description": "List contacts of all users and user groups in current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_contacts_empty",
        "tags": [
          "Contacts"
        ],
        "parameters": [
          {
            "name": "me",
            "in": "query",
            "description": "If present - only contact info of requesting user is returned",
            "required": true,
            "type": "boolean"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata filter, exact match for metadata key or key-value pair",
            "required": false,
            "type": "string"
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "Deleted flag filter",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "emails",
            "in": "query",
            "description": "Email contacts filter. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "active",
            "in": "query",
            "description": "Active status filter",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "name",
            "in": "query",
            "description": "Contact name filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Contact type filter\n* `Group` - Group of users. Group userId can be used in folder/task sharing requests only. It has no effect in other operations\n* `Invitation` - Pending invitation\n* `Asset` - Asset\n* `Person` - Person\n* `Robot` - Robot user for automated operations",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Contact metadata\n* `currentCostRate` - Current user's cost rate\n* `customFields` - User's custom fields\n* `currentBillRate` - Current user's bill rate\n* `jobRoleId` - Current user's jobRoleId\n* `workScheduleId` - Contact work schedule id",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Contact"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts/{contactIds}/contacts_history": {
      "get": {
        "summary": "Query Contacts fields history",
        "deprecated": false,
        "description": "Query Contacts fields history.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_contacts_multi_contacts_history",
        "tags": [
          "Contacts"
        ],
        "parameters": [
          {
            "name": "contactIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Update date filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `billRate` - User's bill rate\n* `costRate` - User's cost rate",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/ContactChangeHistory"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts/{contactId}": {
      "get": {
        "summary": "Query Contacts",
        "deprecated": false,
        "description": "List contacts of specified users and user groups.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_contacts_multi",
        "tags": [
          "Contacts"
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata filter, exact match for metadata key or key-value pair",
            "required": false,
            "type": "string"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Contact type filter\n* `Group` - Group of users. Group userId can be used in folder/task sharing requests only. It has no effect in other operations\n* `Invitation` - Pending invitation\n* `Asset` - Asset\n* `Person` - Person\n* `Robot` - Robot user for automated operations",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Contact metadata\n* `currentCostRate` - Current user's cost rate\n* `customFields` - User's custom fields\n* `currentBillRate` - Current user's bill rate\n* `jobRoleId` - Current user's jobRoleId\n* `workScheduleId` - Contact work schedule id",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Contact"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Contact",
        "deprecated": false,
        "description": "Update contact of requesting user by ID (use 'Modify User' method to update other users). Account Admins may use this method to update group info by group ID. .\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_contacts_single",
        "tags": [
          "Contacts"
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "description": "",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be updated. Requesting user has read/write access to his own metadata, other entries are read-only. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "currentBillRate",
            "in": "query",
            "description": "Update current user's bill rate",
            "required": false,
            "type": "string"
          },
          {
            "name": "currentCostRate",
            "in": "query",
            "description": "Update current user's cost rate",
            "required": false,
            "type": "string"
          },
          {
            "name": "jobRoleId",
            "in": "query",
            "description": "Update current user's job role id",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom fields to be updated or deleted (null value removes field). Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `currentCostRate` - Current user's cost rate\n* `customFields` - User's custom fields\n* `currentBillRate` - Current user's bill rate\n* `jobRoleId` - Current user's job role id",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Contact"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedules/{workscheduleId}/duplicate": {
      "post": {
        "summary": "Copy Work Schedule",
        "deprecated": false,
        "description": "Duplicate work schedule in account.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "POST_workschedules_single_duplicate",
        "tags": [
          "Copy Work Schedule"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Name of work schedule",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/customfields": {
      "get": {
        "summary": "Query Custom Fields",
        "deprecated": false,
        "description": "Returns a list of custom fields in current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_customfields_empty",
        "tags": [
          "Custom Fields"
        ],
        "parameters": [
          {
            "name": "applicableEntityTypes",
            "in": "query",
            "description": "Applicable entity types\n* `User` - \n* `WorkItem` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Custom field types\n* `Multiple` - Collection field\n* `Percentage` - Comparable field\n* `Text` - String field, Comparable field\n* `Duration` - Comparable field\n* `CalculatedNumeric` - Calculated comparable field\n* `Date` - Comparable field\n* `CalculatedDate` - Calculated comparable field\n* `Numeric` - Comparable field\n* `Contacts` - Collection field\n* `Checkbox` - Boolean field\n* `Currency` - Comparable field\n* `DropDown` - String field, Comparable field\n* `LinkToDatabase` - Link to database field",
            "required": false,
            "type": "string"
          },
          {
            "name": "inheritanceTypes",
            "in": "query",
            "description": "Custom field inheritance types\n* `All` - \n* `Tasks` - \n* `Projects` - \n* `Folders` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Custom field title",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomFieldDescription"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Custom Field",
        "deprecated": false,
        "description": "Create custom field in specified account.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_customfields_empty",
        "tags": [
          "Custom Fields"
        ],
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "description": "Custom field title",
            "required": true,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Custom field type\n* `Multiple` - Collection field\n* `Percentage` - Comparable field\n* `Text` - String field, Comparable field\n* `Duration` - Comparable field\n* `CalculatedNumeric` - Calculated comparable field\n* `Date` - Comparable field\n* `CalculatedDate` - Calculated comparable field\n* `Numeric` - Comparable field\n* `Contacts` - Collection field\n* `Checkbox` - Boolean field\n* `Currency` - Comparable field\n* `DropDown` - String field, Comparable field\n* `LinkToDatabase` - Link to database field",
            "required": true,
            "enum": [
              "Multiple",
              "Percentage",
              "Text",
              "Duration",
              "CalculatedNumeric",
              "Date",
              "CalculatedDate",
              "Numeric",
              "Contacts",
              "Checkbox",
              "Currency",
              "DropDown",
              "LinkToDatabase"
            ],
            "type": "string"
          },
          {
            "name": "spaceId",
            "in": "query",
            "description": "Custom field space ID",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "sharing",
            "in": "query",
            "description": "Custom field access settings",
            "required": false,
            "type": "string"
          },
          {
            "name": "shareds",
            "in": "query",
            "description": "Users to share custom field with. Parameter is obsolete, use 'sharing' instead",
            "required": false,
            "type": "string"
          },
          {
            "name": "settings",
            "in": "query",
            "description": "Custom field settings",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomFieldDescription"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/customfields/{customfieldId}": {
      "get": {
        "summary": "Query Custom Fields",
        "deprecated": false,
        "description": "Returns complete information about specified custom fields.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_customfields_multi",
        "tags": [
          "Custom Fields"
        ],
        "parameters": [
          {
            "name": "customfieldId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "applicableEntityTypes",
            "in": "query",
            "description": "Applicable entity types\n* `User` - \n* `WorkItem` - ",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomFieldDescription"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Custom Field",
        "deprecated": false,
        "description": "Modify custom field.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_customfields_single",
        "tags": [
          "Custom Fields"
        ],
        "parameters": [
          {
            "name": "customfieldId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Custom field title",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Custom field type. Conversion from any type of field to LinkToDatabase is not supported\n* `Multiple` - Collection field\n* `Percentage` - Comparable field\n* `Text` - String field, Comparable field\n* `Duration` - Comparable field\n* `CalculatedNumeric` - Calculated comparable field\n* `Date` - Comparable field\n* `CalculatedDate` - Calculated comparable field\n* `Numeric` - Comparable field\n* `Contacts` - Collection field\n* `Checkbox` - Boolean field\n* `Currency` - Comparable field\n* `DropDown` - String field, Comparable field\n* `LinkToDatabase` - Link to database field",
            "required": false,
            "enum": [
              "Multiple",
              "Percentage",
              "Text",
              "Duration",
              "CalculatedNumeric",
              "Date",
              "CalculatedDate",
              "Numeric",
              "Contacts",
              "Checkbox",
              "Currency",
              "DropDown",
              "LinkToDatabase"
            ],
            "type": "string"
          },
          {
            "name": "changeScope",
            "in": "query",
            "description": "Custom field scope\n* `Space` - Use it with valid 'spaceId' parameter to move custom field to space level\n* `Account` - Use it with null 'spaceId' parameter to move custom field to account level",
            "required": false,
            "enum": [
              "Space",
              "Account"
            ],
            "type": "string"
          },
          {
            "name": "spaceId",
            "in": "query",
            "description": "Custom field space ID",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "sharing",
            "in": "query",
            "description": "Custom field access settings",
            "required": false,
            "type": "string"
          },
          {
            "name": "addShareds",
            "in": "query",
            "description": "Share custom field with specified users. Parameter is obsolete, use 'sharing' instead",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeShareds",
            "in": "query",
            "description": "Unshare custom field from specified users. Parameter is obsolete, use 'sharing' instead",
            "required": false,
            "type": "string"
          },
          {
            "name": "settings",
            "in": "query",
            "description": "Custom field type settings",
            "required": false,
            "type": "string"
          },
          {
            "name": "addMirrors",
            "in": "query",
            "description": "Add mirror fields to LinkToDatabase field",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeMirrors",
            "in": "query",
            "description": "Remove mirror fields from to LinkToDatabase field",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomFieldDescription"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/custom_item_types": {
      "get": {
        "summary": "Query All Custom Item Types",
        "deprecated": false,
        "description": "Returns all custom item types that belong to the whole account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_custom_item_types_empty",
        "tags": [
          "Custom Item Types"
        ],
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "description": "Filter search results by title",
            "required": false,
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Result entries limit",
            "required": false,
            "type": "number"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Related type of returned custom item types\n* `Project` - Project based\n* `Task` - Task based\n* `Folder` - Folder based",
            "required": false,
            "enum": [
              "Project",
              "Task",
              "Folder"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomItemType"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}/custom_item_types": {
      "get": {
        "summary": "Query All Custom Item Types",
        "deprecated": false,
        "description": "Returns all custom item types that belong to the specific space.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single_custom_item_types",
        "tags": [
          "Custom Item Types"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Filter search results by title",
            "required": false,
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Result entries limit",
            "required": false,
            "type": "number"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Related type of returned custom item types\n* `Project` - Project based\n* `Task` - Task based\n* `Folder` - Folder based",
            "required": false,
            "enum": [
              "Project",
              "Task",
              "Folder"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomItemType"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/custom_item_types/{customItemTypeIds}": {
      "get": {
        "summary": "Query Specific Custom Item Type by ID",
        "deprecated": false,
        "description": "Returns custom item type(s) for specified type ID(s).\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_custom_item_types_multi",
        "tags": [
          "Custom Item Types"
        ],
        "parameters": [
          {
            "name": "customItemTypeIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CustomItemType"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/custom_item_types/{customItemTypeId}/instantiate": {
      "post": {
        "summary": "Create Work from Custom Item Type",
        "deprecated": false,
        "description": "Create work using the specific custom item type.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_custom_item_types_single_instantiate",
        "tags": [
          "Custom Item Types"
        ],
        "parameters": [
          {
            "name": "customItemTypeId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "superTaskId",
            "in": "query",
            "description": "ID of parent task. Set this to add work from the task-based custom item type as a subtask. Either this parameter or parentId  is required. parentId and superTaskId cannot be set simultaneously.",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "ID of parent folder or project.  Set this to put work from the custom item type to the specific folder or project. Either this parameter or superTaskId  is required. parentId and superTaskId cannot be set simultaneously",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkItemMetadata"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/data_export": {
      "get": {
        "summary": "Get Data Export",
        "deprecated": false,
        "description": "Get last completed Data Export.\n\n<b>Scopes:</b> dataExportFull",
        "operationId": "GET_data_export_empty",
        "tags": [
          "Data Export"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/DataExportOperation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Refresh Data Export",
        "deprecated": false,
        "description": "Forces new data export generation (if it is not in progress already). 202 code is returned in case new export generation is started. Data export can be requested no sooner than 1 hour after last successful data export. If there is fresh data export already, 200 code and latest export in format similar to [GET] /data_export is returned.\n\n<b>Scopes:</b> dataExportFull",
        "operationId": "POST_data_export_empty",
        "tags": [
          "Data Export"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/DataExportOperation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/data_export/{dataExportId}": {
      "get": {
        "summary": "Get Data Export",
        "deprecated": false,
        "description": "Get Data Export specified by id.\n\n<b>Scopes:</b> dataExportFull",
        "operationId": "GET_data_export_single",
        "tags": [
          "Data Export"
        ],
        "parameters": [
          {
            "name": "dataExportId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/DataExportOperation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/data_export_schema": {
      "get": {
        "summary": "Get Data Export Schema",
        "deprecated": false,
        "description": "Get data export schema specified by version.\n\n<b>Scopes:</b> dataExportFull",
        "operationId": "GET_data_export_schema_empty",
        "tags": [
          "Data export schema"
        ],
        "parameters": [
          {
            "name": "version",
            "in": "query",
            "description": "Version\n* `V0` - \n* `V1` - \n* `V2` - ",
            "required": false,
            "enum": [
              "V0",
              "V1",
              "V2"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/DataExportTableSchema"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/dependencies": {
      "get": {
        "summary": "Query Dependencies",
        "deprecated": false,
        "description": "Get task dependencies.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_dependencies",
        "tags": [
          "Dependencies"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Dependency"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Dependency",
        "deprecated": false,
        "description": "Add dependency between tasks. If a dependency already exists, attempting to recreate will result in an error.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_tasks_single_dependencies",
        "tags": [
          "Dependencies"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "predecessorId",
            "in": "query",
            "description": "Add predecessor task, only one of predecessorId/successorId fields can be specified",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "successorId",
            "in": "query",
            "description": "Add successor task, only one of predecessorId/successorId fields can be specified",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "relationType",
            "in": "query",
            "description": "Relation between Predecessor and Successor\n* `FinishToFinish` - Finish to finish. Allowed only when predecessor and successor are Planned or Milestone tasks\n* `StartToStart` - Start to start. Allowed only when both predecessor and successor are Planned tasks\n* `StartToFinish` - Start to finish. Allowed only when predecessor is Planned, and successor is Planned or Milestone task\n* `FinishToStart` - Finish to start. Allowed only when predecessor is Planned or Milestone, and successor is Planned task",
            "required": true,
            "enum": [
              "FinishToFinish",
              "StartToStart",
              "StartToFinish",
              "FinishToStart"
            ],
            "type": "string"
          },
          {
            "name": "lagTime",
            "in": "query",
            "description": "Always in minutes, positive numbers are lag time and negative numbers are lead time",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Dependency"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/dependencies/{dependencyId}": {
      "get": {
        "summary": "Query Dependencies",
        "deprecated": false,
        "description": "Returns complete information about single or multiple dependencies.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_dependencies_multi",
        "tags": [
          "Dependencies"
        ],
        "parameters": [
          {
            "name": "dependencyId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Dependency"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Dependency",
        "deprecated": false,
        "description": "Delete dependency between tasks.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_dependencies_single",
        "tags": [
          "Dependencies"
        ],
        "parameters": [
          {
            "name": "dependencyId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Dependency"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Dependency",
        "deprecated": false,
        "description": "Change relationType of task dependency.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_dependencies_single",
        "tags": [
          "Dependencies"
        ],
        "parameters": [
          {
            "name": "dependencyId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "relationType",
            "in": "query",
            "description": "Relation between Predecessor and Successor\n* `FinishToFinish` - Finish to finish. Allowed only when predecessor and successor are Planned or Milestone tasks\n* `StartToStart` - Start to start. Allowed only when both predecessor and successor are Planned tasks\n* `StartToFinish` - Start to finish. Allowed only when predecessor is Planned, and successor is Planned or Milestone task\n* `FinishToStart` - Finish to start. Allowed only when predecessor is Planned or Milestone, and successor is Planned task",
            "required": true,
            "enum": [
              "FinishToFinish",
              "StartToStart",
              "StartToFinish",
              "FinishToStart"
            ],
            "type": "string"
          },
          {
            "name": "lagTime",
            "in": "query",
            "description": "Always in minutes, positive numbers are lag time and negative numbers are lead time",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Dependency"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/ediscovery_search": {
      "post": {
        "summary": "eDiscovery Search",
        "deprecated": false,
        "description": "Search entities for eDiscovery report.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "POST_ediscovery_search_empty",
        "tags": [
          "EDiscovery"
        ],
        "parameters": [
          {
            "name": "scopes",
            "in": "query",
            "description": "Scopes to limit the result\n* `task` - \n* `folder` - \n* `attachment` - \n* `project` - \n* `space` - ",
            "required": true,
            "type": "string"
          },
          {
            "name": "terms",
            "in": "query",
            "description": "Terms to search",
            "required": false,
            "type": "string"
          },
          {
            "name": "targetUserId",
            "in": "query",
            "description": "User id to limit the result",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "Maximum approximate duration to handle requests",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folder_blueprints": {
      "get": {
        "summary": "Get Folder Blueprints tree",
        "deprecated": false,
        "description": "Account-level Folder Blueprints tree.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folder_blueprints_empty",
        "tags": [
          "Folder Blueprints"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/FolderBlueprint"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}/folder_blueprints": {
      "get": {
        "summary": "Get Folder Blueprints tree",
        "deprecated": false,
        "description": "Space-level Folder Blueprints tree.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single_folder_blueprints",
        "tags": [
          "Folder Blueprints"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/FolderBlueprint"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folder_blueprints/{folderBlueprintId}/launch_async": {
      "post": {
        "summary": "Async Work Creation",
        "deprecated": false,
        "description": "Folder Blueprint Launch, returns async job.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folder_blueprints_single_launch_async",
        "tags": [
          "Folder Blueprints"
        ],
        "parameters": [
          {
            "name": "folderBlueprintId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "parent",
            "in": "query",
            "description": "ID of parent folder",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title (required)",
            "required": true,
            "type": "string"
          },
          {
            "name": "titlePrefix",
            "in": "query",
            "description": "Title prefix for all copied tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyDescriptions",
            "in": "query",
            "description": "Copy descriptions or leave empty",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "notifyResponsibles",
            "in": "query",
            "description": "Notify those responsible",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyResponsibles",
            "in": "query",
            "description": "Copy those responsible",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyCustomFields",
            "in": "query",
            "description": "Copy custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyAttachments",
            "in": "query",
            "description": "Copy attachments",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "rescheduleDate",
            "in": "query",
            "description": "Date to use in task rescheduling. Note: Only active tasks can be rescheduled. Format: yyyy-MM-dd",
            "required": false,
            "type": "string"
          },
          {
            "name": "rescheduleMode",
            "in": "query",
            "description": "Mode to be used for rescheduling (based on first or last date). Used only if reschedule date is specified.\n* `Start` - Tasks in scope are rescheduled starting from reschedule date\n* `End` - Tasks in scope are rescheduled ending with reschedule date",
            "required": false,
            "enum": [
              "Start",
              "End"
            ],
            "type": "string"
          },
          {
            "name": "entryLimit",
            "in": "query",
            "description": "Maximum number of tasks/folders in tree for copy. The operation will fail if limit is exceeded. This should be 1..250",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AsyncJob"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders": {
      "get": {
        "summary": "Get Folder Tree",
        "deprecated": false,
        "description": "Returns a list of folders for the current account.<br>\nThe method operates in two modes:<br>\n<ul>\n<li><b>Folder Tree Mode</b>: Activated if no filter parameters are provided. This mode returns the account's\nfolders (spaces), their descendant folders, the root folder, and the recycle bin folder\n(note that \"deleted\" parameter can affect the result, see below).\nFiltering can be requested in this mode using the descendants=true parameter along with filter parameters.\n\n<li><b>Folders Mode</b>: Activated if the parameter descendant=false is specified or if there is at least\none filter parameter, e.g., project=true. This mode returns only the account's folders filtered by the\nspecified parameters.\n</ul>\n\nThe chosen mode can be identified by the \"kind\" key in the result JSON body, with \"kind\": \"folderTree\"\nfor Folder Tree Mode and \"kind\": \"folders\" for Folders Mode.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_empty",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "permalink",
            "in": "query",
            "description": "Folder permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Folders metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match. Limit : 25",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "project",
            "in": "query",
            "description": "Filter only projects (true) / only folders (false)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "Get folders from Root (false) / Recycle Bin (true). This parameter does not affect method's mode.",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "contractTypes",
            "in": "query",
            "description": "Contract type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard types (project, folder) IDs are not allowed. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of folders to return (max 1000 items per page). Only 'folders' kind is supported",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those in each new call. Only 'folders' kind is supported",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `superParentIds` - List of super parent folder IDs (applicable to 'Selective Sharing' labs feature)\n* `metadata` - Folder metadata entries\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `customColumnIds` - Associated custom field IDs\n* `contractType` - Contract type\n* `description` - Description\n* `attachmentCount` - Attachment count\n* `hasAttachments` - Has attachments\n* `briefDescription` - Brief description\n* `space` - Is folder a space",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/folders": {
      "get": {
        "summary": "Get Folder Tree",
        "deprecated": false,
        "description": "Returns the list of folders from a specific folder in the current account. If the root or recycle bin\nfolder id is specified, the method returns the list of folders of the root and recycle bin respectively.<br>\nThe method operates in two modes:\n<ul>\n<li><b>Folder Tree Mode</b>: Activated if no filter parameters are provided. This mode returns the requested\nfolders (spaces), their descendant folders, the root folder, and the recycle bin folder.\n\n<li><b>Folders Mode</b>: Activated if the parameter descendant=false is specified or if there is at least\none filter parameter, e.g., project=true. This mode returns only the account's folders filtered by the\nspecified parameters.\n</ul>\n\nThe chosen mode can be identified by the \"kind\" key in the result JSON body, with \"kind\": \"folderTree\"\nfor Folder Tree Mode and \"kind\": \"folders\" for Folders Mode.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_folders",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "permalink",
            "in": "query",
            "description": "Folder permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Folders metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match. Limit : 25",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "project",
            "in": "query",
            "description": "Filter only projects (true) / only folders (false)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "contractTypes",
            "in": "query",
            "description": "Contract type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard types (project, folder) IDs are not allowed. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of folders to return (max 1000 items per page). Only 'folders' kind is supported",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those in each new call. Only 'folders' kind is supported",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `superParentIds` - List of super parent folder IDs (applicable to 'Selective Sharing' labs feature)\n* `metadata` - Folder metadata entries\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `customColumnIds` - Associated custom field IDs\n* `contractType` - Contract type\n* `description` - Description\n* `attachmentCount` - Attachment count\n* `hasAttachments` - Has attachments\n* `briefDescription` - Brief description\n* `space` - Is folder a space\n* `finance` - Project Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Folder",
        "deprecated": false,
        "description": "Create a folder within a folder. Specify virtual rootFolderId in order to create a folder in the account root.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_folders",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title, cannot be empty",
            "required": true,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Folder description. If not specified, will be left blank",
            "required": false,
            "type": "string"
          },
          {
            "name": "shareds",
            "in": "query",
            "description": "Users or invited users to share folder with. Folder is always shared with creator",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be added to newly created folder. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "List of custom fields to be set upon task creation. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customColumns",
            "in": "query",
            "description": "List of custom fields associated with folder",
            "required": false,
            "type": "string"
          },
          {
            "name": "project",
            "in": "query",
            "description": "Project settings in order to create project",
            "required": false,
            "type": "string"
          },
          {
            "name": "userAccessRoles",
            "in": "query",
            "description": "Access Roles assigned to users with which folder will be shared",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in ownerIds & sharedIds list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypeId",
            "in": "query",
            "description": "Custom Item Type ID to create a project from",
            "required": true,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `customItemTypeId` - Custom Item Type ID\n* `contractType` - Contract type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}/folders": {
      "get": {
        "summary": "Get Folder Tree",
        "deprecated": false,
        "description": "Returns the list of folders from a specific space in the current account.<br>\nThe method operates in two modes:<br>\n<ul>\n<li><b>Folder Tree Mode</b>: Activated if no filter parameters are provided. This mode returns the required\nspace, it's descendant folders, the root folder, and the recycle bin folder (note that \"deleted\" parameter\ncan affect the result, see below).\nFiltering can be requested in this mode using the descendants=true parameter along with filter parameters.\n\n<li><b>Folders Mode</b>: Activated if the parameter descendant=false is specified or if there is at least\none filter parameter, e.g., project=true. This mode returns only required space's folders filtered by the\nspecified parameters.\n</ul>\nThe chosen mode can be identified by the \"kind\" key in the result JSON body, with \"kind\": \"folderTree\"\nfor Folder Tree Mode and \"kind\": \"folders\" for Folders Mode.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single_folders",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "permalink",
            "in": "query",
            "description": "Folder permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Folders metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match. Limit : 25",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "project",
            "in": "query",
            "description": "Filter only projects (true) / only folders (false)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "Get folders from Root (false) / Recycle Bin (true). This parameter does not affect method's mode.",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "contractTypes",
            "in": "query",
            "description": "Contract type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard types (project, folder) IDs are not allowed. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of folders to return (max 1000 items per page). Only 'folders' kind is supported",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those in each new call. Only 'folders' kind is supported",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `superParentIds` - List of super parent folder IDs (applicable to 'Selective Sharing' labs feature)\n* `metadata` - Folder metadata entries\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `customColumnIds` - Associated custom field IDs\n* `contractType` - Contract type\n* `description` - Description\n* `attachmentCount` - Attachment count\n* `hasAttachments` - Has attachments\n* `briefDescription` - Brief description\n* `space` - Is folder a space",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderIds}/folders_history": {
      "get": {
        "summary": "Query Folders fields history",
        "deprecated": false,
        "description": "Query Folders fields history.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_multi_folders_history",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Update date filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `plannedCost` - Planned cost change history\n* `plannedFees` - Planned fees change history\n* `actualFees` - Actual fees change history\n* `actualCost` - Actual cost change history\n* `budget` - Budget change history",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/FolderChangeHistory"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/copy_folder/{folderId}": {
      "post": {
        "summary": "Copy Folder",
        "deprecated": false,
        "description": "Copy folder subtree, returns parent folder subtree.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_copy_folder_single",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "parent",
            "in": "query",
            "description": "ID of parent folder",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title, cannot be empty",
            "required": true,
            "type": "string"
          },
          {
            "name": "titlePrefix",
            "in": "query",
            "description": "Title prefix for all copied tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyDescriptions",
            "in": "query",
            "description": "Copy descriptions or leave empty",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyResponsibles",
            "in": "query",
            "description": "Copy responsibles",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "addResponsibles",
            "in": "query",
            "description": "Add specified users to task responsible list",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeResponsibles",
            "in": "query",
            "description": "Remove specified users from task responsible list",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyCustomFields",
            "in": "query",
            "description": "Copy custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyCustomStatuses",
            "in": "query",
            "description": "Copy custom statuses or set according to workflow otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyStatuses",
            "in": "query",
            "description": "Copy task statuses or set to Active otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyParents",
            "in": "query",
            "description": "Preserve parent folders",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "rescheduleDate",
            "in": "query",
            "description": "Date to use in task rescheduling. Note that only active tasks can be rescheduled. To activate and reschedule all tasks, use 'rescheduleDate' in combination with copyStatuses = false",
            "required": false,
            "type": "string"
          },
          {
            "name": "rescheduleMode",
            "in": "query",
            "description": "Mode to be used for rescheduling (based on first or last date), has effect only if reschedule date is specified.\n* `Start` - Tasks in scope are rescheduled starting from reschedule date\n* `End` - Tasks in scope are rescheduled ending with reschedule date",
            "required": false,
            "enum": [
              "Start",
              "End"
            ],
            "type": "string"
          },
          {
            "name": "entryLimit",
            "in": "query",
            "description": "Limit maximum allowed number for tasks/folders in tree for copy, operation will fail if limit is exceeded, should be 1..250",
            "required": false,
            "type": "number"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/copy_folder_async/{folderId}": {
      "post": {
        "summary": "Copy Folder async",
        "deprecated": false,
        "description": "Copy folder subtree, returns async job.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_copy_folder_async_single",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "parent",
            "in": "query",
            "description": "ID of parent folder",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title, cannot be empty",
            "required": true,
            "type": "string"
          },
          {
            "name": "titlePrefix",
            "in": "query",
            "description": "Title prefix for all copied tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyDescriptions",
            "in": "query",
            "description": "Copy descriptions or leave empty",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyResponsibles",
            "in": "query",
            "description": "Copy responsibles",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "addResponsibles",
            "in": "query",
            "description": "Add specified users to task responsible list",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeResponsibles",
            "in": "query",
            "description": "Remove specified users from task responsible list",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyCustomFields",
            "in": "query",
            "description": "Copy custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyCustomStatuses",
            "in": "query",
            "description": "Copy custom statuses or set according to workflow otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyStatuses",
            "in": "query",
            "description": "Copy task statuses or set to Active otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyParents",
            "in": "query",
            "description": "Preserve parent folders",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "rescheduleDate",
            "in": "query",
            "description": "Date to use in task rescheduling. Note that only active tasks can be rescheduled. To activate and reschedule all tasks, use 'rescheduleDate' in combination with copyStatuses = false",
            "required": false,
            "type": "string"
          },
          {
            "name": "rescheduleMode",
            "in": "query",
            "description": "Mode to be used for rescheduling (based on first or last date), has effect only if reschedule date is specified.\n* `Start` - Tasks in scope are rescheduled starting from reschedule date\n* `End` - Tasks in scope are rescheduled ending with reschedule date",
            "required": false,
            "enum": [
              "Start",
              "End"
            ],
            "type": "string"
          },
          {
            "name": "entryLimit",
            "in": "query",
            "description": "Limit maximum allowed number for tasks/folders in tree for copy, operation will fail if limit is exceeded, should be 1..250",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AsyncJob"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}": {
      "get": {
        "summary": "Get Folder",
        "deprecated": false,
        "description": "Returns complete information about specified folders.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_multi",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `accessRoles` - Folder Access Roles\n* `customItemTypeId` - Work Item custom item type Id\n* `customColumnIds` - Associated custom field IDs\n* `contractType` - Contract type\n* `attachmentCount` - Attachment count\n* `briefDescription` - Get brief description\n* `finance` - Project Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Folder",
        "deprecated": false,
        "description": "Move folder and all descendant folders and tasks to Recycle Bin unless they have parents outside of deletion scope.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_folders_single",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Folder",
        "deprecated": false,
        "description": "Update folder.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_folders_single",
        "tags": [
          "Folders & Projects"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title",
            "required": false,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Folder description",
            "required": false,
            "type": "string"
          },
          {
            "name": "addParents",
            "in": "query",
            "description": "Parent folders from same account to add, cannot contain rootFolderId and recycleBinId",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeParents",
            "in": "query",
            "description": "Parent folders from same account to remove, cannot contain rootFolderId and recycleBinId",
            "required": false,
            "type": "string"
          },
          {
            "name": "addShareds",
            "in": "query",
            "description": "Share folder with specified users or invitations",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeShareds",
            "in": "query",
            "description": "Unshare folder from specified users or invitations",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be updated. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "restore",
            "in": "query",
            "description": "Restore folder from Recycled Bin",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom fields to be updated or deleted (null value removes field). Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customColumns",
            "in": "query",
            "description": "List of custom fields associated with folder",
            "required": false,
            "type": "string"
          },
          {
            "name": "clearCustomColumns",
            "in": "query",
            "description": "Remove all custom fields associated with folder",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "project",
            "in": "query",
            "description": "Project settings (update project or convert folder to project). Use null value to convert project to folder",
            "required": false,
            "type": "string"
          },
          {
            "name": "addAccessRoles",
            "in": "query",
            "description": "Specifies users with Access Roles for folder",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "removeAccessRoles",
            "in": "query",
            "description": "Specifies users whose Access Roles should be removed",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in ownerIds & sharedIds list",
            "required": true,
            "type": "boolean"
          },
          {
            "name": "convertToCustomItemType",
            "in": "query",
            "description": "Custom Item Type id",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `contractType` - Contract type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Folder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/groups/{groupId}": {
      "get": {
        "summary": "Query Groups",
        "deprecated": false,
        "description": "Returns complete information about single group.\n\n<b>Scopes:</b> amReadOnlyGroup, amReadWriteGroup",
        "operationId": "GET_groups_single",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Group metadata entries",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Groups",
        "deprecated": false,
        "description": "Delete group by Id.\n\n<b>Scopes:</b> amReadWriteGroup",
        "operationId": "DELETE_groups_single",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "test",
            "in": "query",
            "description": "Check that group can be removed",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Groups",
        "deprecated": false,
        "description": "Update group by id.\n\n<b>Scopes:</b> amReadWriteGroup",
        "operationId": "PUT_groups_single",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title of group",
            "required": false,
            "type": "string"
          },
          {
            "name": "addMembers",
            "in": "query",
            "description": "Add specified users to group",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeMembers",
            "in": "query",
            "description": "Remove specified users from group",
            "required": false,
            "type": "string"
          },
          {
            "name": "addInvitations",
            "in": "query",
            "description": "Add specified invitations to group",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeInvitations",
            "in": "query",
            "description": "Remove specified invitations from group",
            "required": false,
            "type": "string"
          },
          {
            "name": "parent",
            "in": "query",
            "description": "Parent group",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "avatar",
            "in": "query",
            "description": "Info for group avatar creation",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be updated. Limit : 100",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/groups": {
      "get": {
        "summary": "Query Groups",
        "deprecated": false,
        "description": "Returns all groups in the account.\n\n<b>Scopes:</b> amReadOnlyGroup, amReadWriteGroup",
        "operationId": "GET_groups_empty",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata filter, exact match for metadata key or key-value pair",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size",
            "required": false,
            "type": "number"
          },
          {
            "name": "pageToken",
            "in": "query",
            "description": "Page token, overrides any other parameters in request",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Group metadata",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Groups",
        "deprecated": false,
        "description": "Create group in account.\n\n<b>Scopes:</b> amReadWriteGroup",
        "operationId": "POST_groups_empty",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "description": "Title of group, required",
            "required": true,
            "type": "string"
          },
          {
            "name": "members",
            "in": "query",
            "description": "Group users",
            "required": false,
            "type": "string"
          },
          {
            "name": "parent",
            "in": "query",
            "description": "Parent group",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "avatar",
            "in": "query",
            "description": "Info for group avatar creation",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be added to newly created group. Limit : 100",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/groups_bulk": {
      "put": {
        "summary": "Bulk modify groups",
        "deprecated": false,
        "description": "Update groups.\n\n<b>Scopes:</b> amReadWriteGroup",
        "operationId": "PUT_groups_bulk_empty",
        "tags": [
          "Groups"
        ],
        "parameters": [
          {
            "name": "members",
            "in": "query",
            "description": "Update group members. Limit 20. Limit : 20",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Group"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts/{contactIds}/hourly_rates": {
      "get": {
        "summary": "Get Budget Rates",
        "deprecated": false,
        "description": "Load budget rates for specified contacts.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_contacts_multi_hourly_rates",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "contactIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/BudgetRatesAggregated"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/hourly_rates": {
      "get": {
        "summary": "Get Budget Rates",
        "deprecated": false,
        "description": "Return project hourly rates.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_hourly_rates",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/BudgetRatesAggregated"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Budget Rates",
        "deprecated": false,
        "description": "Provision hourly rates to subject (user, placeholder) in specific project. Max 100 items per request.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_folders_single_hourly_rates",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 100",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "rates",
            "in": "query",
            "description": "Provision hourly rates to users. Max 100 users per request. Limit : 100",
            "required": true,
            "type": "string"
          },
          {
            "name": "enableCalculations",
            "in": "query",
            "description": "Trigger rates recalculation",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/BudgetRatesAggregated"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/placeholders/{placeholderIds}/hourly_rates": {
      "get": {
        "summary": "Get Budget Rates",
        "deprecated": false,
        "description": "Load budget rates for specified placeholders.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_placeholders_multi_hourly_rates",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "placeholderIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/BudgetRatesAggregated"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/hourly_rates": {
      "put": {
        "summary": "Modify Budget Rates",
        "deprecated": false,
        "description": "Provision hourly rates to users and placeholders. Max 100 items per request.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_hourly_rates_empty",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "rates",
            "in": "query",
            "description": "Provision hourly rates to users. Max 100 users per request. Limit : 100",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/BudgetRatesAggregated"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/project_team_members": {
      "delete": {
        "summary": "Exclude team members",
        "deprecated": false,
        "description": "Exclude team member from the project. Max 100 items per request.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_folders_single_project_team_members",
        "tags": [
          "Hourly rates"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "rateSubjects",
            "in": "query",
            "description": "Project team members to remove. Max 100 per request. Limit : 100",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts/{contactIds}/hourly_rates_provision": {
      "put": {
        "summary": "Provision",
        "deprecated": false,
        "description": "Provision hourly rates to users. Max 100 users per request.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_contacts_multi_hourly_rates_provision",
        "tags": [
          "Hourly rates provision"
        ],
        "parameters": [
          {
            "name": "contactIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 100",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "userRates",
            "in": "query",
            "description": "Provision hourly rates to users. Max 100 users per request. Limit : 100",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Rates"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/ids": {
      "get": {
        "summary": "Legacy API v2 IDs converter",
        "deprecated": false,
        "description": "Convert APIv2 legacy IDs to APIv4 format for specific entity type.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_ids_empty",
        "tags": [
          "IDs"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Entity type\n* `ApiV2Task` - API v2 task\n* `ApiV2Attachment` - API v2 attachment\n* `ApiV2Comment` - API v2 comment\n* `ApiV2Folder` - API v2 folder\n* `ApiV2Timelog` - API v2 timelog entry\n* `ApiV2User` - API v2 user or group\n* `ApiV2Account` - API v2 account\n* `ApiV2RequestForm` - API v2 request form",
            "required": true,
            "enum": [
              "ApiV2Task",
              "ApiV2Attachment",
              "ApiV2Comment",
              "ApiV2Folder",
              "ApiV2Timelog",
              "ApiV2User",
              "ApiV2Account",
              "ApiV2RequestForm"
            ],
            "type": "string"
          },
          {
            "name": "ids",
            "in": "query",
            "description": "List of APIv2 legacy IDs. Limit : 1000",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Apiv3Apiv2Id"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/invitations": {
      "get": {
        "summary": "Query Invitations",
        "deprecated": false,
        "description": "Get all invitations for current account.\n\n<b>Scopes:</b> amReadOnlyInvitation, amReadWriteInvitation",
        "operationId": "GET_invitations_empty",
        "tags": [
          "Invitations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Invitation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Invitation",
        "deprecated": false,
        "description": "Create an invitation into the current account.\n\n<b>Scopes:</b> amReadWriteInvitation",
        "operationId": "POST_invitations_empty",
        "tags": [
          "Invitations"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "Create an invitation for current email",
            "required": true,
            "type": "string"
          },
          {
            "name": "firstName",
            "in": "query",
            "description": "First name of invited user",
            "required": false,
            "type": "string"
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Last name of invited user",
            "required": false,
            "type": "string"
          },
          {
            "name": "role",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'userTypeId' parameter instead. Set user role in account. Mutually exclusive with userTypeId param\n* `User` - \n* `Collaborator` - ",
            "required": false,
            "enum": [
              "User",
              "Collaborator"
            ],
            "type": "string"
          },
          {
            "name": "external",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'userTypeId' parameter instead. Set external flag for invited user. Flag 'External' can be applied only to the role 'User'. Mutually exclusive with userTypeId param",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "subject",
            "in": "query",
            "description": "Custom message subject. Not available for free accounts",
            "required": false,
            "type": "string"
          },
          {
            "name": "message",
            "in": "query",
            "description": "Custom message body. Not available for free accounts",
            "required": false,
            "type": "string"
          },
          {
            "name": "userTypeId",
            "in": "query",
            "description": "Set user type in account. Mutually exclusive with role and external params",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Invitation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/invitations/{invitationId}": {
      "delete": {
        "summary": "Delete Invitation",
        "deprecated": false,
        "description": "Delete invitation by ID.\n\n<b>Scopes:</b> amReadWriteInvitation",
        "operationId": "DELETE_invitations_single",
        "tags": [
          "Invitations"
        ],
        "parameters": [
          {
            "name": "invitationId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Invitation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Invitation",
        "deprecated": false,
        "description": "Update invitation by ID and/or resend invitation.\n\n<b>Scopes:</b> amReadWriteInvitation",
        "operationId": "PUT_invitations_single",
        "tags": [
          "Invitations"
        ],
        "parameters": [
          {
            "name": "invitationId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "resend",
            "in": "query",
            "description": "Resend invitation",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "role",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'userTypeId' parameter instead. Change role of user in account for pending invitation. Mutually exclusive with userTypeId param. \n* `User` - \n* `Collaborator` - ",
            "required": false,
            "enum": [
              "User",
              "Collaborator"
            ],
            "type": "string"
          },
          {
            "name": "external",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'userTypeId' parameter instead. Change external flag for pending invitation. Flag 'External' can be applied only to the role 'User'. Mutually exclusive with userTypeId param",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "userTypeId",
            "in": "query",
            "description": "Change user type of user in account for pending invitation. Mutually exclusive with role and external params",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Invitation"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/jobroles": {
      "get": {
        "summary": "Query Job Roles",
        "deprecated": false,
        "description": "Returns list of all job roles in account.\n\n<b>Scopes:</b> amReadOnlyUser, amReadWriteUser",
        "operationId": "GET_jobroles_empty",
        "tags": [
          "Job Roles"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/JobRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Job Role",
        "deprecated": false,
        "description": "Create Job Role.\n\n<b>Scopes:</b> amReadWriteUser",
        "operationId": "POST_jobroles_empty",
        "tags": [
          "Job Roles"
        ],
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "description": "Name of Job Role",
            "required": true,
            "type": "string"
          },
          {
            "name": "shortTitle",
            "in": "query",
            "description": "Short name of Job Role",
            "required": false,
            "type": "string"
          },
          {
            "name": "avatarColor",
            "in": "query",
            "description": "Job Role Avatar color\n* `Purple1` - #BA68C8\n* `Purple2` - #8E24AA\n* `Blue1` - #64B5F6\n* `Pink1` - #F06292\n* `Pink2` - #D81B60\n* `Red1` - #E57373\n* `Red2` - #E53935\n* `Turquoise1` - #4DD0E1\n* `Turquoise2` - #00ACC1\n* `Blue2` - #1E88E5\n* `DarkBlue1` - #7986CB\n* `Green2` - #43A047\n* `DarkBlue2` - #3949AB\n* `Green1` - #81C784\n* `Yellow1` - #FBC02D\n* `Yellow2` - #F9A825\n* `Orange2` - #F57C00\n* `DarkCyan2` - #00897B\n* `Orange1` - #FF9800\n* `DarkCyan1` - #4DB6AC\n* `YellowGreen2` - #AFB42B\n* `YellowGreen1` - #C0CA33",
            "required": false,
            "enum": [
              "Purple1",
              "Purple2",
              "Blue1",
              "Pink1",
              "Pink2",
              "Red1",
              "Red2",
              "Turquoise1",
              "Turquoise2",
              "Blue2",
              "DarkBlue1",
              "Green2",
              "DarkBlue2",
              "Green1",
              "Yellow1",
              "Yellow2",
              "Orange2",
              "DarkCyan2",
              "Orange1",
              "DarkCyan1",
              "YellowGreen2",
              "YellowGreen1"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/JobRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/jobroles/{jobroleId}": {
      "get": {
        "summary": "Query Job Roles",
        "deprecated": false,
        "description": "Get job roles list.\n\n<b>Scopes:</b> amReadOnlyUser, amReadWriteUser",
        "operationId": "GET_jobroles_multi",
        "tags": [
          "Job Roles"
        ],
        "parameters": [
          {
            "name": "jobroleId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/JobRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Job Role",
        "deprecated": false,
        "description": "Delete job role by Id.\n\n<b>Scopes:</b> amReadWriteUser",
        "operationId": "DELETE_jobroles_single",
        "tags": [
          "Job Roles"
        ],
        "parameters": [
          {
            "name": "jobroleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/JobRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Job Role",
        "deprecated": false,
        "description": "Create Job Role.\n\n<b>Scopes:</b> amReadWriteUser",
        "operationId": "PUT_jobroles_single",
        "tags": [
          "Job Roles"
        ],
        "parameters": [
          {
            "name": "jobroleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Name of Job Role",
            "required": false,
            "type": "string"
          },
          {
            "name": "shortTitle",
            "in": "query",
            "description": "Short name of Job Role",
            "required": false,
            "type": "string"
          },
          {
            "name": "avatarColor",
            "in": "query",
            "description": "Job Role Avatar color",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/JobRole"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/placeholders": {
      "get": {
        "summary": "Query Placeholders",
        "deprecated": false,
        "description": "Returns list of all placeholders in account.\n\n<b>Scopes:</b> amReadOnlyUser, amReadWriteUser",
        "operationId": "GET_placeholders_empty",
        "tags": [
          "Placeholders"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Placeholder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/placeholders/{placeholderIds}": {
      "get": {
        "summary": "Query Placeholders",
        "deprecated": false,
        "description": "Get placeholders list.\n\n<b>Scopes:</b> amReadOnlyUser, amReadWriteUser",
        "operationId": "GET_placeholders_multi",
        "tags": [
          "Placeholders"
        ],
        "parameters": [
          {
            "name": "placeholderIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Placeholder"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/rollups": {
      "get": {
        "summary": "Query rollup settings for items",
        "deprecated": false,
        "description": "Get rollup settings for folders.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_rollups",
        "tags": [
          "Rollups"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/RollupSettings"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Change rollup settings for item",
        "deprecated": false,
        "description": "Update folder rollup state.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_folders_single_rollups",
        "tags": [
          "Rollups"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 100",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "rollups",
            "in": "query",
            "description": "Rollup settings updates. Limit : 20",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/RollupSettings"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/rollups": {
      "get": {
        "summary": "Query rollup settings for items",
        "deprecated": false,
        "description": "Get rollup settings for tasks.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_rollups",
        "tags": [
          "Rollups"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/RollupSettings"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Change rollup settings for item",
        "deprecated": false,
        "description": "Update task rollup state.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_tasks_single_rollups",
        "tags": [
          "Rollups"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 100",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "rollups",
            "in": "query",
            "description": "Rollup settings updates. Limit : 20",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/RollupSettings"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces": {
      "get": {
        "summary": "Get Spaces",
        "deprecated": false,
        "description": "Returns a list of spaces.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_empty",
        "tags": [
          "Spaces"
        ],
        "parameters": [
          {
            "name": "withArchived",
            "in": "query",
            "description": "Include archived spaces",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "userIsMember",
            "in": "query",
            "description": "Include only spaces where user is member",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in space members list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `members` - Space members",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Space"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Space",
        "deprecated": false,
        "description": "Create a space. Available for all plans except Team.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_spaces_empty",
        "tags": [
          "Spaces"
        ],
        "parameters": [
          {
            "name": "accessType",
            "in": "query",
            "description": "Type of the space\n* `Locked` - \n* `Personal` - \n* `Private` - \n* `Public` - ",
            "required": true,
            "enum": [
              "Locked",
              "Personal",
              "Private",
              "Public"
            ],
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title of the space",
            "required": true,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description of the space",
            "required": false,
            "type": "string"
          },
          {
            "name": "members",
            "in": "query",
            "description": "Space members. More than 1 member with the same ID is not allowed. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "guestRoleId",
            "in": "query",
            "description": "Space guest role. Available only for a public space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "defaultProjectWorkflowId",
            "in": "query",
            "description": "Set default project workflow for a space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "suggestedProjectWorkflows",
            "in": "query",
            "description": "Suggested project workflows for a space. A workflow can only be included in a request once. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "defaultTaskWorkflowId",
            "in": "query",
            "description": "Set default task workflow for a space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "suggestedTaskWorkflows",
            "in": "query",
            "description": "Suggested task workflows for a space. A workflow can only be included in a request once",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in space members list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `suggestedTaskWorkflows` - Suggested task workflows for a space\n* `suggestedProjectWorkflows` - Suggested project workflows for a space\n* `members` - Space members",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Space"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}": {
      "get": {
        "summary": "Get Space",
        "deprecated": false,
        "description": "Returns info about a space.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single",
        "tags": [
          "Spaces"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in space members list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `suggestedTaskWorkflows` - Suggested task workflows for a space\n* `suggestedProjectWorkflows` - Suggested project workflows for a space\n* `members` - Space members",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Space"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Space",
        "deprecated": false,
        "description": "Delete a space.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_spaces_single",
        "tags": [
          "Spaces"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Space",
        "deprecated": false,
        "description": "Update a space.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_spaces_single",
        "tags": [
          "Spaces"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "accessType",
            "in": "query",
            "description": "Type of the space\n* `Locked` - \n* `Personal` - \n* `Private` - \n* `Public` - ",
            "required": false,
            "enum": [
              "Locked",
              "Personal",
              "Private",
              "Public"
            ],
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title of the space",
            "required": false,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description of the space",
            "required": false,
            "type": "string"
          },
          {
            "name": "membersAdd",
            "in": "query",
            "description": "Space members to add. A member should be passed only once in request. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "membersUpdate",
            "in": "query",
            "description": "Space members to update. A member should be passed only once in request",
            "required": false,
            "type": "string"
          },
          {
            "name": "membersRemove",
            "in": "query",
            "description": "Space members to remove. A member should be passed only once in request. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "guestRoleId",
            "in": "query",
            "description": "Space guest role. Available only for a public space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "defaultProjectWorkflowId",
            "in": "query",
            "description": "Set default project workflow for a space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "suggestedProjectWorkflowsAdd",
            "in": "query",
            "description": "Add workflows to Suggested project workflows. A workflow can only be included in a request once. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "suggestedProjectWorkflowsRemove",
            "in": "query",
            "description": "Remove workflows from Suggested project workflows. A workflow can only be included in a request once",
            "required": false,
            "type": "string"
          },
          {
            "name": "defaultTaskWorkflowId",
            "in": "query",
            "description": "Set default task workflow for a space",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "suggestedTaskWorkflowsAdd",
            "in": "query",
            "description": "Add workflows to Suggested task workflows. A workflow can only be included in a request once",
            "required": false,
            "type": "string"
          },
          {
            "name": "suggestedTaskWorkflowsRemove",
            "in": "query",
            "description": "Remove workflows from Suggested task workflows. A workflow can only be included in a request once",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in space members list",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `suggestedTaskWorkflows` - Space task suggested workflows\n* `suggestedProjectWorkflows` - Space project suggested workflows\n* `members` - Space members",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Space"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/task_blueprints": {
      "get": {
        "summary": "Get Task Blueprints",
        "deprecated": false,
        "description": "Account-level Task Blueprints.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_task_blueprints_empty",
        "tags": [
          "Task Blueprints"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned task blueprints. It is ignored if pagination is requested.",
            "required": false,
            "type": "number"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size.",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "Next page token",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TaskBlueprint"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}/task_blueprints": {
      "get": {
        "summary": "Get Task Blueprints",
        "deprecated": false,
        "description": "Space-level Task Blueprints.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single_task_blueprints",
        "tags": [
          "Task Blueprints"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned task blueprints. It is ignored if pagination is requested.",
            "required": false,
            "type": "number"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size.",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "Next page token",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TaskBlueprint"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/task_blueprints/{taskBlueprintId}/launch_async": {
      "post": {
        "summary": "Async Work Creation",
        "deprecated": false,
        "description": "Task Blueprint Launch, returns async job.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_task_blueprints_single_launch_async",
        "tags": [
          "Task Blueprints"
        ],
        "parameters": [
          {
            "name": "taskBlueprintId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "superTaskId",
            "in": "query",
            "description": "ID of parent task. Set this to add work from the task-based template as a subtask. Either this parameter or parentId  is required. parentId and superTaskId cannot be set simultaneously.",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "ID of parent folder or project.  Set this to put work from the template to the specific folder or project. Either this parameter or superTaskId  is required. parentId and superTaskId cannot be set simultaneously",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title (required)",
            "required": true,
            "type": "string"
          },
          {
            "name": "titlePrefix",
            "in": "query",
            "description": "Title prefix for all copied tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "copyDescriptions",
            "in": "query",
            "description": "Copy descriptions or leave empty",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "notifyResponsibles",
            "in": "query",
            "description": "Notify those responsible",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyResponsibles",
            "in": "query",
            "description": "Copy those responsible",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyCustomFields",
            "in": "query",
            "description": "Copy custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "copyAttachments",
            "in": "query",
            "description": "Copy attachments",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "rescheduleDate",
            "in": "query",
            "description": "Date to use in task rescheduling. Note: Only active tasks can be rescheduled. Format: yyyy-MM-dd",
            "required": false,
            "type": "string"
          },
          {
            "name": "rescheduleMode",
            "in": "query",
            "description": "Mode to be used for rescheduling (based on first or last date). Used only if reschedule date is specified.\n* `Start` - Tasks in scope are rescheduled starting from reschedule date\n* `End` - Tasks in scope are rescheduled ending with reschedule date",
            "required": false,
            "enum": [
              "Start",
              "End"
            ],
            "type": "string"
          },
          {
            "name": "entryLimit",
            "in": "query",
            "description": "Maximum number of tasks/folders in tree for copy. The operation will fail if limit is exceeded. This should be 1..250",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/AsyncJob"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks": {
      "get": {
        "summary": "Query Tasks",
        "deprecated": false,
        "description": "Search among all tasks in current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_empty",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope. Applicable only for GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks endpoints",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title filter, contains match",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status filter, match with any of specified constants\n* `Active` - Active\n* `Deferred` - Deferred\n* `Completed` - Completed\n* `Cancelled` - Cancelled",
            "required": false,
            "type": "string"
          },
          {
            "name": "importance",
            "in": "query",
            "description": "Importance filter, exact match\n* `High` - \n* `Low` - \n* `Normal` - ",
            "required": false,
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "Due date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "scheduledDate",
            "in": "query",
            "description": "Scheduled date filter. Both dates should be set in ranged version.\nReturns all tasks that have schedule intersecting with specified interval, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "completedDate",
            "in": "query",
            "description": "Completed date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "authors",
            "in": "query",
            "description": "Authors filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibles",
            "in": "query",
            "description": "Assignees filter with specified users or invitations, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholders",
            "in": "query",
            "description": "Assignee Placeholders filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "permalink",
            "in": "query",
            "description": "Task permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Task type\n* `Milestone` - \n* `Backlog` - \n* `Planned` - ",
            "required": false,
            "enum": [
              "Milestone",
              "Backlog",
              "Planned"
            ],
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned tasks",
            "required": false,
            "type": "number"
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort field\n* `Status` - Sort by status\n* `Importance` - Sort by importance\n* `UpdatedDate` - Sort by updated date\n* `Priority` - Sort by priority (as ordered in workspace tasklist)\n* `CreatedDate` - Sort by created date\n* `Title` - Lexicographic sorting by title\n* `StartFinishInterval` - Sort by start-finish interval\n* `DueDate` - Sort by due date\n* `LastAccessDate` - Sort by last access date\n* `CompletedDate` - Sort by completed date",
            "required": false,
            "enum": [
              "Status",
              "Importance",
              "UpdatedDate",
              "Priority",
              "CreatedDate",
              "Title",
              "StartFinishInterval",
              "DueDate",
              "LastAccessDate",
              "CompletedDate"
            ],
            "type": "string"
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort order\n* `Asc` - Ascending sort order\n* `Desc` - Descending sort order",
            "required": false,
            "enum": [
              "Asc",
              "Desc"
            ],
            "type": "string"
          },
          {
            "name": "subTasks",
            "in": "query",
            "description": "Adds subtasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of tasks to return (max 1000 items per page)",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those  in each new call",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Task metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "customStatuses",
            "in": "query",
            "description": "Custom statuses filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Timelog billing types filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard type (task) ID is not allowed. Filtering by deleted custom item types is not supported. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Task metadata entries\n* `responsibleIds` - List of assignee user IDs\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `followerIds` - List of user IDs, who follows task, and the additional flag \"followedByMe\", that indicates if a task is followed by user\n* `parentIds` - List of task parent folder\n* `sharedIds` - List of user IDs, who have task share\n* `description` - Description\n* `superTaskIds` - List of supertask IDs\n* `responsiblePlaceholderIds` - List of placeholder assignee IDs\n* `superParentIds` - List of folder IDs inherited from parent task\n* `dependencyIds` - Dependency IDs\n* `billingType` - Billing type\n* `attachmentCount` - Attachment count\n* `effortAllocation` - Effort Allocation\n* `hasAttachments` - Has attachments\n* `subTaskIds` - List of subtask IDs\n* `recurrent` - Is a task recurrent\n* `authorIds` - Author IDs\n* `briefDescription` - Brief description",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/tasks": {
      "get": {
        "summary": "Query Tasks",
        "deprecated": false,
        "description": "Search among tasks in the folder.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_tasks",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope. Applicable only for GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks endpoints",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title filter, contains match",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status filter, match with any of specified constants\n* `Active` - Active\n* `Deferred` - Deferred\n* `Completed` - Completed\n* `Cancelled` - Cancelled",
            "required": false,
            "type": "string"
          },
          {
            "name": "importance",
            "in": "query",
            "description": "Importance filter, exact match\n* `High` - \n* `Low` - \n* `Normal` - ",
            "required": false,
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "Due date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "scheduledDate",
            "in": "query",
            "description": "Scheduled date filter. Both dates should be set in ranged version.\nReturns all tasks that have schedule intersecting with specified interval, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "completedDate",
            "in": "query",
            "description": "Completed date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "authors",
            "in": "query",
            "description": "Authors filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibles",
            "in": "query",
            "description": "Assignees filter with specified users or invitations, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholders",
            "in": "query",
            "description": "Assignee Placeholders filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "permalink",
            "in": "query",
            "description": "Task permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Task type\n* `Milestone` - \n* `Backlog` - \n* `Planned` - ",
            "required": false,
            "enum": [
              "Milestone",
              "Backlog",
              "Planned"
            ],
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned tasks",
            "required": false,
            "type": "number"
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort field\n* `Status` - Sort by status\n* `Importance` - Sort by importance\n* `UpdatedDate` - Sort by updated date\n* `Priority` - Sort by priority (as ordered in workspace tasklist)\n* `CreatedDate` - Sort by created date\n* `Title` - Lexicographic sorting by title\n* `StartFinishInterval` - Sort by start-finish interval\n* `DueDate` - Sort by due date\n* `LastAccessDate` - Sort by last access date\n* `CompletedDate` - Sort by completed date",
            "required": false,
            "enum": [
              "Status",
              "Importance",
              "UpdatedDate",
              "Priority",
              "CreatedDate",
              "Title",
              "StartFinishInterval",
              "DueDate",
              "LastAccessDate",
              "CompletedDate"
            ],
            "type": "string"
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort order\n* `Asc` - Ascending sort order\n* `Desc` - Descending sort order",
            "required": false,
            "enum": [
              "Asc",
              "Desc"
            ],
            "type": "string"
          },
          {
            "name": "subTasks",
            "in": "query",
            "description": "Adds subtasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of tasks to return (max 1000 items per page)",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those  in each new call",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Task metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "customStatuses",
            "in": "query",
            "description": "Custom statuses filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Timelog billing types filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard type (task) ID is not allowed. Filtering by deleted custom item types is not supported. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Task metadata entries\n* `responsibleIds` - List of assignee user IDs\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `followerIds` - List of user IDs, who follows task, and the additional flag \"followedByMe\", that indicates if a task is followed by user\n* `parentIds` - List of task parent folder\n* `sharedIds` - List of user IDs, who have task share\n* `description` - Description\n* `superTaskIds` - List of supertask IDs\n* `responsiblePlaceholderIds` - List of placeholder assignee IDs\n* `superParentIds` - List of folder IDs inherited from parent task\n* `dependencyIds` - Dependency IDs\n* `billingType` - Billing type\n* `attachmentCount` - Attachment count\n* `effortAllocation` - Effort Allocation\n* `hasAttachments` - Has attachments\n* `subTaskIds` - List of subtask IDs\n* `recurrent` - Is a task recurrent\n* `authorIds` - Author IDs\n* `briefDescription` - Brief description\n* `finance` - Task Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Task",
        "deprecated": false,
        "description": "Create a task in a folder. The folder specified by {folderId} will become the 'parent' folder for the new task. To create a task in the account root, use the Root Folder API ID. When creating a subtask, use the Root API ID as {folderId} and specify the parent task in the 'superTasks' parameter.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_folders_single_tasks",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title of task, required",
            "required": true,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description of task, will be left blank, if not set",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of task. Not available for the Team plan\n* `Active` - Active\n* `Deferred` - Deferred\n* `Completed` - Completed\n* `Cancelled` - Cancelled",
            "required": false,
            "enum": [
              "Active",
              "Deferred",
              "Completed",
              "Cancelled"
            ],
            "type": "string"
          },
          {
            "name": "importance",
            "in": "query",
            "description": "Importance of task\n* `High` - \n* `Low` - \n* `Normal` - ",
            "required": false,
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          {
            "name": "dates",
            "in": "query",
            "description": "Task dates. If not specified, a backlogged task is created",
            "required": false,
            "type": "string"
          },
          {
            "name": "shareds",
            "in": "query",
            "description": "Shares task with specified users or invitations. The task is always shared with the author.",
            "required": false,
            "type": "string"
          },
          {
            "name": "parents",
            "in": "query",
            "description": "Parent folders for newly created task. Can not contain recycleBinId",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibles",
            "in": "query",
            "description": "Makes specified users or invitations assignee for the task",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholders",
            "in": "query",
            "description": "Makes specified placeholders assignee for the task",
            "required": false,
            "type": "string"
          },
          {
            "name": "followers",
            "in": "query",
            "description": "Add specified users to task followers",
            "required": false,
            "type": "string"
          },
          {
            "name": "follow",
            "in": "query",
            "description": "Follow task",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "priorityBefore",
            "in": "query",
            "description": "Put newly created task before specified task in task list",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "priorityAfter",
            "in": "query",
            "description": "Put newly created task after specified task in task list",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "superTasks",
            "in": "query",
            "description": "Add the task as subtask to specified tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be added to newly created task. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "List of custom fields to set in newly created task. Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customStatus",
            "in": "query",
            "description": "Custom status ID",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "effortAllocation",
            "in": "query",
            "description": "Set Task Effort fields: mode, total Effort",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingType",
            "in": "query",
            "description": "Task's timelogs billing type\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "enum": [
              "Billable",
              "NonBillable"
            ],
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypeId",
            "in": "query",
            "description": "Custom Item Type ID to create a task from",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `customItemTypeId` - Custom Item Type ID\n* `billingType` - Billing type\n* `effortAllocation` - Effort Allocation\n* `responsiblePlaceholderIds` - List of placeholder assignee IDs",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/spaces/{spaceId}/tasks": {
      "get": {
        "summary": "Query Tasks",
        "deprecated": false,
        "description": "Search among tasks in space.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_spaces_single_tasks",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "spaceId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant folders to search scope. Applicable only for GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks endpoints",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title filter, contains match",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status filter, match with any of specified constants\n* `Active` - Active\n* `Deferred` - Deferred\n* `Completed` - Completed\n* `Cancelled` - Cancelled",
            "required": false,
            "type": "string"
          },
          {
            "name": "importance",
            "in": "query",
            "description": "Importance filter, exact match\n* `High` - \n* `Low` - \n* `Normal` - ",
            "required": false,
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "dueDate",
            "in": "query",
            "description": "Due date filter, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "scheduledDate",
            "in": "query",
            "description": "Scheduled date filter. Both dates should be set in ranged version.\nReturns all tasks that have schedule intersecting with specified interval, date match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Updated date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "completedDate",
            "in": "query",
            "description": "Completed date filter, range",
            "required": false,
            "type": "string"
          },
          {
            "name": "authors",
            "in": "query",
            "description": "Authors filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsibles",
            "in": "query",
            "description": "Assignees filter with specified users or invitations, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "responsiblePlaceholders",
            "in": "query",
            "description": "Assignee Placeholders filter, match of any",
            "required": false,
            "type": "string"
          },
          {
            "name": "permalink",
            "in": "query",
            "description": "Task permalink, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Task type\n* `Milestone` - \n* `Backlog` - \n* `Planned` - ",
            "required": false,
            "enum": [
              "Milestone",
              "Backlog",
              "Planned"
            ],
            "type": "string"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on number of returned tasks",
            "required": false,
            "type": "number"
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort field\n* `Status` - Sort by status\n* `Importance` - Sort by importance\n* `UpdatedDate` - Sort by updated date\n* `Priority` - Sort by priority (as ordered in workspace tasklist)\n* `CreatedDate` - Sort by created date\n* `Title` - Lexicographic sorting by title\n* `StartFinishInterval` - Sort by start-finish interval\n* `DueDate` - Sort by due date\n* `LastAccessDate` - Sort by last access date\n* `CompletedDate` - Sort by completed date",
            "required": false,
            "enum": [
              "Status",
              "Importance",
              "UpdatedDate",
              "Priority",
              "CreatedDate",
              "Title",
              "StartFinishInterval",
              "DueDate",
              "LastAccessDate",
              "CompletedDate"
            ],
            "type": "string"
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort order\n* `Asc` - Ascending sort order\n* `Desc` - Descending sort order",
            "required": false,
            "enum": [
              "Asc",
              "Desc"
            ],
            "type": "string"
          },
          {
            "name": "subTasks",
            "in": "query",
            "description": "Adds subtasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of tasks to return (max 1000 items per page)",
            "required": false,
            "type": "number"
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "description": "A pagination request will return a token that applies an offset to the next page. The returned value should be used as an input parameter in the next request. Parameter pageSize can be omitted in this case. If you included optional fields to the first request, you will need to include those  in each new call",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Task metadata filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customField",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'customFields' parameter. Custom field filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom field filters, exact match",
            "required": false,
            "type": "string"
          },
          {
            "name": "customStatuses",
            "in": "query",
            "description": "Custom statuses filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Timelog billing types filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customItemTypes",
            "in": "query",
            "description": "Custom item types filter. Standard type (task) ID is not allowed. Filtering by deleted custom item types is not supported. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `metadata` - Task metadata entries\n* `responsibleIds` - List of assignee user IDs\n* `customItemTypeId` - Work Item custom item type Id\n* `customFields` - Custom fields\n* `followerIds` - List of user IDs, who follows task, and the additional flag \"followedByMe\", that indicates if a task is followed by user\n* `parentIds` - List of task parent folder\n* `sharedIds` - List of user IDs, who have task share\n* `description` - Description\n* `superTaskIds` - List of supertask IDs\n* `responsiblePlaceholderIds` - List of placeholder assignee IDs\n* `superParentIds` - List of folder IDs inherited from parent task\n* `dependencyIds` - Dependency IDs\n* `billingType` - Billing type\n* `attachmentCount` - Attachment count\n* `effortAllocation` - Effort Allocation\n* `hasAttachments` - Has attachments\n* `subTaskIds` - List of subtask IDs\n* `recurrent` - Is a task recurrent\n* `authorIds` - Author IDs\n* `briefDescription` - Brief description",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskIds}/tasks_history": {
      "get": {
        "summary": "Query Tasks fields history",
        "deprecated": false,
        "description": "Query Tasks fields history.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_multi_tasks_history",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "taskIds",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Update date filter",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `plannedCost` - Planned cost change history\n* `plannedFees` - Planned fees change history\n* `actualFees` - Actual fees change history\n* `actualCost` - Actual cost change history",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TaskChangeHistory"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}": {
      "get": {
        "summary": "Query Tasks",
        "deprecated": false,
        "description": "Returns complete information about single or multiple tasks.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_multi",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `customItemTypeId` - Work Item custom item type Id\n* `billingType` - Billing type\n* `attachmentCount` - Attachment count\n* `responsiblePlaceholderIds` - List of placeholder responsible IDs\n* `effortAllocation` - Effort Allocation\n* `recurrent` - Add field to indicate if task is recurrent\n* `finance` - Task Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Tasks",
        "deprecated": false,
        "description": "Delete task by Id.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_tasks_single",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Tasks",
        "deprecated": false,
        "description": "Update task.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_tasks_single",
        "tags": [
          "Tasks"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Title of task",
            "required": false,
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "description": "Task Description",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Task status. Not available for the Team plan\n* `Active` - Active\n* `Deferred` - Deferred\n* `Completed` - Completed\n* `Cancelled` - Cancelled",
            "required": false,
            "enum": [
              "Active",
              "Deferred",
              "Completed",
              "Cancelled"
            ],
            "type": "string"
          },
          {
            "name": "importance",
            "in": "query",
            "description": "Task importance\n* `High` - \n* `Low` - \n* `Normal` - ",
            "required": false,
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          {
            "name": "dates",
            "in": "query",
            "description": "Reschedule task and/or change task type",
            "required": false,
            "type": "string"
          },
          {
            "name": "addParents",
            "in": "query",
            "description": "Put task into specified folders of same account. Cannot contain RecycleBin folder",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeParents",
            "in": "query",
            "description": "Remove task from specified folders. Can not contain RecycleBin folder",
            "required": false,
            "type": "string"
          },
          {
            "name": "addShareds",
            "in": "query",
            "description": "Shared task with specified users or invitations",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeShareds",
            "in": "query",
            "description": "Unshare task from specified users or invitations",
            "required": false,
            "type": "string"
          },
          {
            "name": "addResponsibles",
            "in": "query",
            "description": "Add specified users or invitations to assignee list",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeResponsibles",
            "in": "query",
            "description": "Remove specified users or invitations from assignee list",
            "required": false,
            "type": "string"
          },
          {
            "name": "addResponsiblePlaceholders",
            "in": "query",
            "description": "Add specified placeholders to placeholder assignee list",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeResponsiblePlaceholders",
            "in": "query",
            "description": "Remove specified placeholders from placeholder assignee list",
            "required": false,
            "type": "string"
          },
          {
            "name": "addFollowers",
            "in": "query",
            "description": "Add specified users to task followers",
            "required": false,
            "type": "string"
          },
          {
            "name": "follow",
            "in": "query",
            "description": "Follow task",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "priorityBefore",
            "in": "query",
            "description": "Put task in task list before specified task",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "priorityAfter",
            "in": "query",
            "description": "Put task in task list after specified task",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "addSuperTasks",
            "in": "query",
            "description": "Add the task as subtask to specified tasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeSuperTasks",
            "in": "query",
            "description": "Remove the task form specified tasks subtasks",
            "required": false,
            "type": "string"
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Metadata to be updated (null value removes entry). Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customFields",
            "in": "query",
            "description": "Custom fields to be updated or deleted (null value removes field). Limit : 100",
            "required": false,
            "type": "string"
          },
          {
            "name": "customStatus",
            "in": "query",
            "description": "Custom status ID",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "restore",
            "in": "query",
            "description": "Restore task from Recycled Bin",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "effortAllocation",
            "in": "query",
            "description": "Set Task Effort fields: mode, total Effort",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingType",
            "in": "query",
            "description": "Task's timelogs billing type\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "enum": [
              "Billable",
              "NonBillable"
            ],
            "type": "string"
          },
          {
            "name": "withInvitations",
            "in": "query",
            "description": "Include invitations in sharedIds & responsibleIds lists",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "convertToCustomItemType",
            "in": "query",
            "description": "Custom Item Type id",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "plainTextCustomFields",
            "in": "query",
            "description": "Strip HTML tags from custom fields",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `billingType` - Billing type\n* `effortAllocation` - Effort Allocation\n* `responsiblePlaceholderIds` - List of placeholder assignee IDs",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Task"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/timelog_categories": {
      "get": {
        "summary": "Query Timelog categories",
        "deprecated": false,
        "description": "Get timelog categories in account.\n\n<b>Scopes:</b> Default, amReadOnlyTimelogCategory, amReadWriteTimelogCategory, wsReadOnly, wsReadWrite",
        "operationId": "GET_timelog_categories_empty",
        "tags": [
          "Timelog categories"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TimelogCategory"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/timelogs": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get all timelog records in current account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_timelogs_empty",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Tracked date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "me",
            "in": "query",
            "description": "If present - only timelogs created by current user are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant tasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "timelogCategories",
            "in": "query",
            "description": "Get timelog records for specified categories. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Billing type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvalStatuses",
            "in": "query",
            "description": "Approval status filter\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/contacts/{contactId}/timelogs": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get all timelog records that were created by the user.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_contacts_single_timelogs",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "description": "",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Tracked date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "me",
            "in": "query",
            "description": "If present - only timelogs created by current user are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant tasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "timelogCategories",
            "in": "query",
            "description": "Get timelog records for specified categories. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Billing type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvalStatuses",
            "in": "query",
            "description": "Approval status filter\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type\n* `finance` - Timelog Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/folders/{folderId}/timelogs": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get all timelog records for a folder.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_folders_single_timelogs",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Tracked date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "me",
            "in": "query",
            "description": "If present - only timelogs created by current user are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant tasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "timelogCategories",
            "in": "query",
            "description": "Get timelog records for specified categories. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Billing type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvalStatuses",
            "in": "query",
            "description": "Approval status filter\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type\n* `finance` - Timelog Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/tasks/{taskId}/timelogs": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get all timelog records for a task.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_tasks_single_timelogs",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Tracked date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "me",
            "in": "query",
            "description": "If present - only timelogs created by current user are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant tasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "timelogCategories",
            "in": "query",
            "description": "Get timelog records for specified categories. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Billing type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvalStatuses",
            "in": "query",
            "description": "Approval status filter\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type\n* `finance` - Timelog Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Timelog",
        "deprecated": false,
        "description": "Create timelog record for task.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "POST_tasks_single_timelogs",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "comment",
            "in": "query",
            "description": "Timelog record comment",
            "required": true,
            "type": "string"
          },
          {
            "name": "hours",
            "in": "query",
            "description": "Time to log in hours",
            "required": true,
            "type": "number"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Date to register time",
            "required": true,
            "type": "string"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "categoryId",
            "in": "query",
            "description": "Timelog category",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "onBehalfOf",
            "in": "query",
            "description": "Create a time entry for another user",
            "required": false,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/timelog_categories/{timelogCategoryId}/timelogs": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get all timelog records with specific timelog category.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_timelog_categories_single_timelogs",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "timelogCategoryId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "Created date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "updatedDate",
            "in": "query",
            "description": "Last updated date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "Tracked date filter, exact match or range",
            "required": false,
            "type": "string"
          },
          {
            "name": "me",
            "in": "query",
            "description": "If present - only timelogs created by current user are returned",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "descendants",
            "in": "query",
            "description": "Adds all descendant tasks to search scope",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "timelogCategories",
            "in": "query",
            "description": "Get timelog records for specified categories. Limit : 1000",
            "required": false,
            "type": "string"
          },
          {
            "name": "billingTypes",
            "in": "query",
            "description": "Billing type filter\n* `Billable` - Billable\n* `NonBillable` - Non-Billable",
            "required": false,
            "type": "string"
          },
          {
            "name": "approvalStatuses",
            "in": "query",
            "description": "Approval status filter\n* `Draft` - \n* `Approved` - \n* `Rejected` - \n* `Cancelled` - \n* `Pending` - ",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type\n* `finance` - Timelog Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/timelogs/{timelogId}": {
      "get": {
        "summary": "Query Timelogs",
        "deprecated": false,
        "description": "Get timelog record by IDs.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_timelogs_multi",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "timelogId",
            "in": "path",
            "description": "Comma-separated list of ids. Limit : 1000",
            "required": true,
            "type": "string",
            "x-example": ""
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type\n* `finance` - Timelog Finance fields",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Timelog",
        "deprecated": false,
        "description": "Delete Timelog record by ID.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "DELETE_timelogs_single",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "timelogId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify Timelog",
        "deprecated": false,
        "description": "Update timelog by Id.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_timelogs_single",
        "tags": [
          "Timelogs"
        ],
        "parameters": [
          {
            "name": "timelogId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "comment",
            "in": "query",
            "description": "Timelog comment",
            "required": false,
            "type": "string"
          },
          {
            "name": "hours",
            "in": "query",
            "description": "New timelog tracked hours",
            "required": false,
            "type": "number"
          },
          {
            "name": "trackedDate",
            "in": "query",
            "description": "New timelog date",
            "required": false,
            "type": "string"
          },
          {
            "name": "plainText",
            "in": "query",
            "description": "Get comment text as plain text, HTML otherwise",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "categoryId",
            "in": "query",
            "description": "Timelog category",
            "required": false,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `approvalStatus` - Timesheet approval status\n* `billingType` - Timelog billing type",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Timelog"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/timesheet_submission_rules": {
      "get": {
        "summary": "Get Timesheet Submission Rules",
        "deprecated": false,
        "description": "List all timesheet submission rules in account.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_timesheet_submission_rules_empty",
        "tags": [
          "Timesheet Submission Rules"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TimesheetSubmissionRule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedules/{workscheduleId}/timesheet_submission_rules": {
      "get": {
        "summary": "Get Timesheet Submission Rules",
        "deprecated": false,
        "description": "Get timesheet submission rule.\n\n<b>Scopes:</b> Default, wsReadOnly, wsReadWrite",
        "operationId": "GET_workschedules_single_timesheet_submission_rules",
        "tags": [
          "Timesheet Submission Rules"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TimesheetSubmissionRule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Timesheet Submission Rules",
        "deprecated": false,
        "description": "Update timesheet submission rule.\n\n<b>Scopes:</b> Default, wsReadWrite",
        "operationId": "PUT_workschedules_single_timesheet_submission_rules",
        "tags": [
          "Timesheet Submission Rules"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "enabled",
            "in": "query",
            "description": "Switch to toggle on/off timesheet submission rule",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "ruleType",
            "in": "query",
            "description": "Type of timesheet submission rule\n* `Hard` - Hard\n* `Soft` - Soft",
            "required": false,
            "enum": [
              "Hard",
              "Soft"
            ],
            "type": "string"
          },
          {
            "name": "frequency",
            "in": "query",
            "description": "Frequency for timesheet submission rule\n* `Week` - Week\n* `Day` - Day",
            "required": false,
            "enum": [
              "Week",
              "Day"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/TimesheetSubmissionRule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/user_schedule_exclusions": {
      "get": {
        "summary": "Query User Schedule exception",
        "deprecated": false,
        "description": "Get exceptions for given users and date range.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_user_schedule_exclusions_empty",
        "tags": [
          "User Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "dateRange",
            "in": "query",
            "description": "Query exceptions for given date range",
            "required": false,
            "type": "string"
          },
          {
            "name": "userIds",
            "in": "query",
            "description": "Query exceptions for given user ids. Limit : 100000",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create User Schedule exception",
        "deprecated": false,
        "description": "Create new exception for given user.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "POST_user_schedule_exclusions_empty",
        "tags": [
          "User Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "User id to add new exception",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string"
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "New exception from date",
            "required": true,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "New exception to date",
            "required": true,
            "type": "string"
          },
          {
            "name": "exclusionType",
            "in": "query",
            "description": "Type of new exception\n* `VacationPTO` - Paid vacations\n* `Overtime` - Additional working days\n* `OtherNonWorking` - Other non-working days",
            "required": true,
            "enum": [
              "VacationPTO",
              "Overtime",
              "OtherNonWorking"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/user_schedule_exclusions/{userScheduleExclusionId}": {
      "get": {
        "summary": "Query User Schedule exception",
        "deprecated": false,
        "description": "Get exception by Id.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_user_schedule_exclusions_single",
        "tags": [
          "User Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "userScheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete User Schedule exception",
        "deprecated": false,
        "description": "Delete exception.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "DELETE_user_schedule_exclusions_single",
        "tags": [
          "User Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "userScheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update User Schedule exception",
        "deprecated": false,
        "description": "Update exception for given user.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "PUT_user_schedule_exclusions_single",
        "tags": [
          "User Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "userScheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Exception from date",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Exception to date",
            "required": false,
            "type": "string"
          },
          {
            "name": "exclusionType",
            "in": "query",
            "description": "Type of exception\n* `VacationPTO` - Paid vacations\n* `Overtime` - Additional working days\n* `OtherNonWorking` - Other non-working days",
            "required": false,
            "enum": [
              "VacationPTO",
              "Overtime",
              "OtherNonWorking"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/user_types": {
      "get": {
        "summary": "Get User Types",
        "deprecated": false,
        "description": "User types.\n\n<b>Scopes:</b> amReadOnlyAccessRole",
        "operationId": "GET_user_types_empty",
        "tags": [
          "User Types"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/UserType"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/users/{userId}": {
      "get": {
        "summary": "Query User",
        "deprecated": false,
        "description": "Returns information about single user.\n\n<b>Scopes:</b> amReadOnlyUser, amReadWriteUser",
        "operationId": "GET_users_single",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/User"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Modify User",
        "deprecated": false,
        "description": "Update users by ID (accessible to Admins only).\n\n<b>Scopes:</b> amReadWriteUser",
        "operationId": "PUT_users_single",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){8}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "profile",
            "in": "query",
            "description": "[Deprecated] It is recommended to use 'userTypeId' parameter instead. Profile to be updated. Mutually exclusive with other params",
            "required": true,
            "type": "string"
          },
          {
            "name": "userTypeId",
            "in": "query",
            "description": "Change user type of user in account. Mutually exclusive with other params",
            "required": false,
            "type": "string"
          },
          {
            "name": "active",
            "in": "query",
            "description": "Activate or deactivate user. Mutually exclusive with other params",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/User"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/version": {
      "get": {
        "summary": "API Version",
        "deprecated": false,
        "description": "Returns current API version info.",
        "operationId": "GET_version_empty",
        "tags": [
          "Version"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Apiv3Version"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedule_exclusions/{workscheduleExclusionId}": {
      "get": {
        "summary": "Query Work Schedule exceptions",
        "deprecated": false,
        "description": "Get exception by Id.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_workschedule_exclusions_single",
        "tags": [
          "Work Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "workscheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Work Schedule exception",
        "deprecated": false,
        "description": "Delete exception by id.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "DELETE_workschedule_exclusions_single",
        "tags": [
          "Work Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "workscheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Work Schedule exception",
        "deprecated": false,
        "description": "Update exception by Id.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "PUT_workschedule_exclusions_single",
        "tags": [
          "Work Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "workscheduleExclusionId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Exception from date",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Exception to date",
            "required": false,
            "type": "string"
          },
          {
            "name": "exclusionType",
            "in": "query",
            "description": "Type of exception\n* `PublicHolidays` - Non-working days because of public holidays\n* `OtherEvent` - Non-working days because of some company or private event\n* `AdditionalWorkDays` - Additional working days, i.e. during weekends",
            "required": false,
            "enum": [
              "PublicHolidays",
              "OtherEvent",
              "AdditionalWorkDays"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedules/{workscheduleId}/workschedule_exclusions": {
      "get": {
        "summary": "Query Work Schedule exceptions",
        "deprecated": false,
        "description": "Get all exceptions for given schedule.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_workschedules_single_workschedule_exclusions",
        "tags": [
          "Work Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "dateRange",
            "in": "query",
            "description": "Date range to query exceptions",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Work Schedule exception",
        "deprecated": false,
        "description": "Create exception for given schedule.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "POST_workschedules_single_workschedule_exclusions",
        "tags": [
          "Work Schedule exceptions"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "New exception from date",
            "required": true,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "New exception to date",
            "required": true,
            "type": "string"
          },
          {
            "name": "exclusionType",
            "in": "query",
            "description": "Type of new exception\n* `PublicHolidays` - Non-working days because of public holidays\n* `OtherEvent` - Non-working days because of some company or private event\n* `AdditionalWorkDays` - Additional working days, i.e. during weekends",
            "required": true,
            "enum": [
              "PublicHolidays",
              "OtherEvent",
              "AdditionalWorkDays"
            ],
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkScheduleException"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedules": {
      "get": {
        "summary": "Query Work Schedules",
        "deprecated": false,
        "description": "Returns list of all work schedules in account.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_workschedules_empty",
        "tags": [
          "Work Schedules"
        ],
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `userIds` - Users assigned to WorkSchedule",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Work Schedule",
        "deprecated": false,
        "description": "Create schedule in account.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "POST_workschedules_empty",
        "tags": [
          "Work Schedules"
        ],
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "description": "Name of schedule",
            "required": true,
            "type": "string"
          },
          {
            "name": "workweek",
            "in": "query",
            "description": "Work week: working and non-working days. Limit : 7",
            "required": true,
            "type": "string"
          },
          {
            "name": "addUsers",
            "in": "query",
            "description": "User ids to assign to the schedule. Limit : 100000",
            "required": false,
            "type": "string"
          },
          {
            "name": "capacityMinutes",
            "in": "query",
            "description": "Custom capacity in minutes",
            "required": false,
            "type": "number"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `userIds` - Users assigned to WorkSchedule",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workschedules/{workscheduleId}": {
      "get": {
        "summary": "Query Work Schedules",
        "deprecated": false,
        "description": "Get work schedule by Id.\n\n<b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule",
        "operationId": "GET_workschedules_single",
        "tags": [
          "Work Schedules"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `userIds` - Users assigned to WorkSchedule",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "summary": "Delete Work Schedule",
        "deprecated": false,
        "description": "Delete work schedule from account.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "DELETE_workschedules_single",
        "tags": [
          "Work Schedules"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "summary": "Update Work Schedule",
        "deprecated": false,
        "description": "Create work schedule in account.\n\n<b>Scopes:</b> amReadWriteWorkSchedule",
        "operationId": "PUT_workschedules_single",
        "tags": [
          "Work Schedules"
        ],
        "parameters": [
          {
            "name": "workscheduleId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "title",
            "in": "query",
            "description": "Name of work schedule",
            "required": false,
            "type": "string"
          },
          {
            "name": "workweek",
            "in": "query",
            "description": "Work week: working and non-working days. Limit : 7",
            "required": false,
            "type": "string"
          },
          {
            "name": "addUsers",
            "in": "query",
            "description": "User ids to assign to the schedule. Limit : 100000",
            "required": false,
            "type": "string"
          },
          {
            "name": "removeUsers",
            "in": "query",
            "description": "User ids to unassign from the schedule",
            "required": false,
            "type": "string"
          },
          {
            "name": "capacityMinutes",
            "in": "query",
            "description": "Custom capacity in minutes",
            "required": false,
            "type": "number"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Json string array of optional fields to be included in the response model\n* `userIds` - Users assigned to WorkSchedule",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/WorkSchedule"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workflows": {
      "get": {
        "summary": "Query Workflows",
        "deprecated": false,
        "description": "Returns list of workflows with custom statuses. Only account-wide workflows are returned.\n\n<b>Scopes:</b> Default, amReadOnlyWorkflow, amReadWriteWorkflow, wsReadOnly, wsReadWrite",
        "operationId": "GET_workflows_empty",
        "tags": [
          "Workflows"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Workflow"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "summary": "Create Workflow",
        "deprecated": false,
        "description": "Create workflow in account.\n\n<b>Scopes:</b> amReadWriteWorkflow",
        "operationId": "POST_workflows_empty",
        "tags": [
          "Workflows"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Name of workflow, required",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Workflow"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    },
    "/workflows/{workflowId}": {
      "put": {
        "summary": "Modify Workflow",
        "deprecated": false,
        "description": "Update workflow or custom statuses.\n\n<b>Scopes:</b> amReadWriteWorkflow",
        "operationId": "PUT_workflows_single",
        "tags": [
          "Workflows"
        ],
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "",
            "required": true,
            "pattern": "^([A-Z0-9]){16}$",
            "type": "string",
            "x-example": ""
          },
          {
            "name": "name",
            "in": "query",
            "description": "Name of workflow (128 symbols max)",
            "required": false,
            "type": "string"
          },
          {
            "name": "hidden",
            "in": "query",
            "description": "Workflow is hidden",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "customStatus",
            "in": "query",
            "description": "Custom status",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success response",
            "headers": {},
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Workflow"
                  }
                },
                "kind": {
                  "$ref": "#/definitions/ResponseKind"
                }
              }
            }
          },
          "400": {
            "description": "client-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "server-side error response",
            "headers": {},
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [],
        "produces": [
          "application/json"
        ]
      }
    }
  },
  "security": [],
  "swagger": "2.0",
  "definitions": {
    "Account": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "array",
          "description": "List of account metadata entries. Entries could be read by all users of account and modified by admins only",
          "items": {
            "$ref": "#/definitions/Metadata"
          }
        },
        "createdDate": {
          "type": "string",
          "description": "Registration date"
        },
        "workDays": {
          "type": "array",
          "description": "List of weekdays, not empty. These days are used in task duration computation",
          "items": {
            "$ref": "#/definitions/WeekDay"
          }
        },
        "dateFormat": {
          "type": "string",
          "description": "Date format: dd/MM/yyyy or MM/dd/yyyy"
        },
        "firstDayOfWeek": {
          "$ref": "#/definitions/WeekDay"
        },
        "customFields": {
          "type": "array",
          "description": "List of custom fields accessible for requesting user in the account",
          "items": {
            "$ref": "#/definitions/CustomFieldInfo"
          }
        },
        "name": {
          "type": "string",
          "description": "Name of account"
        },
        "recycleBinId": {
          "$ref": "#/definitions/FolderId"
        },
        "rootFolderId": {
          "$ref": "#/definitions/FolderId"
        },
        "id": {
          "$ref": "#/definitions/AccountId"
        },
        "subscription": {
          "$ref": "#/definitions/AccountSubscription"
        },
        "joinedDate": {
          "type": "string",
          "description": "Date when the user has joined the account"
        }
      }
    },
    "FolderColor": {
      "type": "string",
      "enum": [
        "Indigo4",
        "Gray3",
        "Indigo2",
        "Indigo3",
        "Gray2",
        "Gray1",
        "Yellow1",
        "Yellow2",
        "Yellow3",
        "Blue1",
        "Yellow4",
        "Blue2",
        "Green4",
        "Blue3",
        "Green3",
        "Blue4",
        "Green2",
        "Green1",
        "Orange4",
        "Orange3",
        "Orange2",
        "Orange1",
        "Person",
        "Purple1",
        "Purple2",
        "Purple3",
        "Pink1",
        "Red3",
        "Pink2",
        "Red4",
        "Pink3",
        "Red1",
        "Pink4",
        "Red2",
        "Purple4",
        "DarkBlue1",
        "DarkBlue3",
        "DarkBlue2",
        "DarkBlue4",
        "YellowGreen4",
        "YellowGreen3",
        "YellowGreen2",
        "YellowGreen1",
        "Turquoise3",
        "Turquoise4",
        "Turquoise1",
        "Turquoise2",
        "Indigo1",
        "DarkCyan2",
        "None",
        "DarkCyan1",
        "DarkCyan4",
        "DarkCyan3"
      ]
    },
    "CustomStatus": {
      "required": [
        "standardName",
        "standard",
        "id",
        "name",
        "group",
        "hidden"
      ],
      "type": "object",
      "properties": {
        "standard": {
          "type": "boolean",
          "description": "Defines default custom status (ignored in requests)"
        },
        "standardName": {
          "type": "boolean",
          "description": "Whether status name is default or not"
        },
        "color": {
          "$ref": "#/definitions/StatusColor"
        },
        "hidden": {
          "type": "boolean",
          "description": "Custom status is hidden"
        },
        "name": {
          "type": "string",
          "description": "Name (128 symbols max)"
        },
        "id": {
          "$ref": "#/definitions/CustomStatusId"
        },
        "group": {
          "$ref": "#/definitions/TaskStatus"
        }
      },
      "description": "ID and group cannot be set simultaneously in request parameter,\nbut ID is required for update, and group is required for insert"
    },
    "ResponseKind": {
      "type": "string",
      "enum": [
        "accounts",
        "users",
        "contacts",
        "eDiscoveryReport",
        "folders",
        "folderTree",
        "tasks",
        "taskIds",
        "timelogs",
        "timelogCategories",
        "timelogLockPeriods",
        "timetrackerTimers",
        "comments",
        "attachments",
        "url",
        "version",
        "dataExport",
        "dataExportSchema",
        "auditLog",
        "accessRoles",
        "stream",
        "changes",
        "posts",
        "mailSettings",
        "integrationInfo",
        "gmailIntegrationSettings",
        "workTypesForIntegrations",
        "ids",
        "backups",
        "domains",
        "dependencies",
        "workflows",
        "workschedules",
        "workscheduleExclusions",
        "workscheduleUserExclusions",
        "customfields",
        "customfieldIds",
        "customstatuses",
        "invitations",
        "notifications",
        "jobroles",
        "placeholders",
        "groups",
        "session",
        "dashboards",
        "widgets",
        "taskCreationSettings",
        "colors",
        "experiments",
        "topics",
        "topicComments",
        "webhooks",
        "reviews",
        "boards",
        "textSearch",
        "chatChannels",
        "chatMessages",
        "forms",
        "requestForms",
        "request",
        "report",
        "platformWidgets",
        "platformWidgetInstances",
        "spaces",
        "pdf",
        "customerSatisfaction",
        "asyncJob",
        "approvals",
        "highlights",
        "highlightsList",
        "highlightsSettings",
        "highlightsCard",
        "timesheet",
        "timesheetSubmissionRule",
        "mobileFeatures",
        "mobileSettings",
        "folderBlueprintTree",
        "taskBlueprintTree",
        "feedback",
        "timeline_snapshot",
        "contactIds",
        "bookings",
        "integrateThreshold",
        "hourlyRatesProvision",
        "hourlyRates",
        "projectTeamMembers",
        "contactsHistory",
        "tasksHistory",
        "foldersHistory",
        "activityDigest",
        "workItemTemplates",
        "workTemplates",
        "workItemMetadata",
        "workItem",
        "customItemTypes",
        "verificationCode",
        "views",
        "listView",
        "tableView",
        "userTypes",
        "reactions",
        "externalRequesters",
        "rollups"
      ]
    },
    "DataExportStatus": {
      "type": "string",
      "enum": [
        "Scheduled",
        "Failed",
        "Completed",
        "InProgress",
        "Cancelled"
      ]
    },
    "TaskEffort": {
      "required": [
        "mode"
      ],
      "type": "object",
      "properties": {
        "dailyAllocationPercentage": {
          "type": "number",
          "description": "Allocation in percentages per day, for effort daily mode"
        },
        "mode": {
          "$ref": "#/definitions/EffortMode"
        },
        "allocatedEffort": {
          "type": "number",
          "description": "Allocated Effort in minutes"
        },
        "totalEffort": {
          "type": "number",
          "description": "Total Effort in minutes"
        },
        "responsibleAllocation": {
          "type": "array",
          "description": "Responsible allocations by day",
          "items": {
            "$ref": "#/definitions/ResponsibleAllocation"
          }
        }
      }
    },
    "CustomFieldApplicableEntityType": {
      "type": "string",
      "enum": [
        "User",
        "WorkItem"
      ]
    },
    "CustomFieldId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "AuditLogOperation": {
      "type": "string",
      "enum": [
        "SecondFactorEnabled",
        "CustomFieldRemoved",
        "CalendarExternalLinksActivated",
        "TaskDuplication",
        "GanttSnapshotDeleted",
        "CalendarExternalLinkDeleted",
        "TaskRestored",
        "CalendarExternalLinksDeactivated",
        "PowerBIPublicLinkDeleted",
        "ApprovalCanceled",
        "RequestFormCreated",
        "SamlClearPasswordForSamlUsers",
        "OneTimePasswordUsed",
        "AnalyzeWidgetPublicLinkCreated",
        "TaskErased",
        "InvitationPolicyChanged",
        "CalendarExternalLinkCreated",
        "UserTaskGroupRolesChanged",
        "UserJoinedSpace",
        "SamlSSOSettingsChanged",
        "UserFailLogin",
        "SamlSSODisabled",
        "AdminMailSettingsChanged",
        "CustomFieldRemovedFromFolder",
        "UserLoggedIn",
        "UserRoleChanged",
        "CustomFieldAddedToFolder",
        "UserTypeModified",
        "AccessCodeAccepted",
        "PublicLinkExpirationChanged",
        "UserLogout",
        "PowerBIPublicLinkCreated",
        "GuestReviewerRevoked",
        "ApprovedIpRangesOrSubnetsChanged",
        "TaskScheduleChanged",
        "CustomFieldRestored",
        "AccountDeleted",
        "UserAdminPermissionsChanged",
        "AttachDeleted",
        "SpaceDeleted",
        "AuditReportCreated",
        "UserTypeCreated",
        "ExcelExportCreated",
        "AdminLoggedInAsUser",
        "WorkflowCreated",
        "TaskUnsharedFromAuthor",
        "AccessAuditReportCsvExport",
        "AttachMarkAsFinal",
        "OneTimePasswordStatusSwitched",
        "ApproverAdded",
        "UserLeftSpace",
        "TaskUnarchived",
        "ApprovalDescriptionChanged",
        "GroupParentRemoved",
        "GuestReviewAccountSettingsChanged",
        "WorkflowDeleted",
        "PasswordPolicyModified",
        "GroupInviteeAdded",
        "UserRestored",
        "ApprovalDueDateChanged",
        "AnalyzeWidgetPublicLinkDeleted",
        "SpaceArchivedUnarchived",
        "TaskStatusChanged",
        "TaskCommentChanged",
        "AccessRoleDeleted",
        "TaskUnassigned",
        "AnalyzePublicLinkCreated",
        "GuestReviewRejected",
        "TaskUnshared",
        "PasswordChanged",
        "RequestFormDeleted",
        "AttemptDownloadInfectedAttach",
        "InvitationSend",
        "AccessRoleModified",
        "SpaceCreated",
        "ApprovedDomainsChanged",
        "TimesheetStatusChanged",
        "TimelogLocked",
        "UserRevokeAdmin",
        "RecycleBinErased",
        "ApproverRemoved",
        "UserDeleted",
        "GanttSnapshotCreated",
        "GroupMemberRemoved",
        "UserProfileUpdated",
        "SecondFactorUsageReportCreated",
        "SecondFactorDisabled",
        "AttachViewed",
        "AccessRoleCreated",
        "GroupMemberAdded",
        "AccountDataExportRequested",
        "SamlSSOMetadataChanged",
        "GroupRenamed",
        "PublicLinkCreated",
        "TaskShared",
        "AccountModified",
        "PublicLinkPasswordRequested",
        "WorkflowModified",
        "PublicLinkDeleted",
        "AccessCodeDeclined",
        "AnalyzeWidgetPublicLinkAccessed",
        "ApprovalCreated",
        "Oauth2AccessRevoked",
        "TaskParentRemoved",
        "AntivirusDeletedInfectedAttach",
        "RequestFormModified",
        "GroupInviteeRemoved",
        "GuestReviewerInvited",
        "TaskArchived",
        "AccountBackupCreated",
        "FeedCreated",
        "AccessCodeGenerated",
        "UserDeactivated",
        "AttachCopied",
        "GroupParentAdded",
        "GuestReviewerChanged",
        "TimelogUnlocked",
        "TaskCreated",
        "OneTimePasswordRevoked",
        "ApprovalFinished",
        "TaskAssigned",
        "OneTimePasswordCreated",
        "GroupCreated",
        "TimesheetCreated",
        "UsersAndGroupsExported",
        "AttachMoved",
        "CustomFieldCreated",
        "AutomatedIntegrationsExecution",
        "PowerBIPublicLinkAccessed",
        "AttachUnmarkAsFinal",
        "AnalyzePublicLinkAccessed",
        "GroupDeleted",
        "CustomFieldModified",
        "TaskCommentDeleted",
        "AnalyzePublicLinkDeleted",
        "UserTypeDeleted",
        "Oauth2AccessGranted",
        "UserGrantAdmin",
        "PublicLinksAccountSettingsChanged",
        "TaskDeleted",
        "InvitationAccepted",
        "AccountDataExportGenerated",
        "SamlSSOEnabled",
        "PublicLinkPasswordChanged",
        "TaskParentAdded",
        "ApprovalDecisionMade",
        "GuestReviewAccepted",
        "UserCustomFieldValueChanged",
        "UserActivated",
        "AttachUploaded",
        "AttachDownloaded"
      ]
    },
    "AccountSubscriptionType": {
      "type": "string",
      "enum": [
        "CreativeBusiness",
        "CreativeEnterprise",
        "Enterprise",
        "Premium",
        "Free",
        "Business"
      ]
    },
    "DataExportOperation": {
      "type": "object",
      "properties": {
        "resources": {
          "type": "array",
          "description": "List of exported resources",
          "items": {
            "$ref": "#/definitions/DataExportResource"
          }
        },
        "id": {
          "$ref": "#/definitions/DataExportId"
        },
        "completedDate": {
          "type": "string",
          "description": "The date when data export was finished"
        },
        "status": {
          "$ref": "#/definitions/DataExportStatus"
        }
      }
    },
    "WorkflowId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "ApprovalStatus": {
      "type": "string",
      "enum": [
        "Draft",
        "Approved",
        "Rejected",
        "Cancelled",
        "Pending"
      ]
    },
    "WorkScheduleType": {
      "type": "string",
      "enum": [
        "Custom",
        "Default"
      ]
    },
    "CustomFieldSettings": {
      "required": [
        "readOnly"
      ],
      "type": "object",
      "properties": {
        "optionColorsEnabled": {
          "type": "boolean",
          "description": "Is colors for options enabled (only for DropDown and MultipleSelect type). Use parameter 'options' to specify colors"
        },
        "linkToDatabaseInfo": {
          "$ref": "#/definitions/CustomFieldLinkToDatabaseField"
        },
        "timezone": {
          "type": "string",
          "description": "Timezone Id, e.g 'America/New_York' (only for Date type)"
        },
        "values": {
          "type": "array",
          "description": "Dropdown values without colors (only for DropDown and MultipleSelect type)",
          "items": {
            "type": "string"
          }
        },
        "aggregation": {
          "$ref": "#/definitions/CustomFieldAggregationType"
        },
        "readOnly": {
          "type": "boolean",
          "description": "Is field value read only"
        },
        "allowOtherValues": {
          "type": "boolean",
          "description": "Allow users to input other values (only for DropDown type)"
        },
        "useThousandsSeparator": {
          "type": "boolean",
          "description": "Use thousands separator (only for Numeric type)"
        },
        "decimalPlaces": {
          "type": "number",
          "description": "Decimal places (only for Numeric, Percentage and Currency types)"
        },
        "options": {
          "type": "array",
          "description": "Dropdown options with colors (only for DropDown and MultipleSelect type). Array of objects:\n{\"value\": \"string\", \"color\": \"enum: Brown, Red, Purple, Indigo, DarkBlue, Blue, Turquoise, DarkCyan, Green, YellowGreen, Yellow, Orange, Gray, DarkRed\"}\n",
          "items": {
            "$ref": "#/definitions/CustomFieldDropdownOption"
          }
        },
        "currency": {
          "$ref": "#/definitions/CustomFieldCurrency"
        },
        "allowTime": {
          "type": "boolean",
          "description": "Allow users to input time (only for Date type)"
        },
        "mirrorInfo": {
          "$ref": "#/definitions/CustomFieldMirrorField"
        },
        "applicableEntityTypes": {
          "type": "array",
          "description": "Applicable entity types",
          "items": {
            "$ref": "#/definitions/CustomFieldApplicableEntityType"
          }
        },
        "contacts": {
          "type": "array",
          "description": "Allowed users or invitations (only for Users type)",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "inheritanceType": {
          "$ref": "#/definitions/CustomFieldInheritanceType"
        }
      }
    },
    "InvitationStatus": {
      "type": "string",
      "enum": [
        "Declined",
        "Cancelled",
        "Pending",
        "Accepted"
      ]
    },
    "CustomStatusInput": {
      "required": [
        "id",
        "name",
        "group",
        "hidden"
      ],
      "type": "object",
      "properties": {
        "color": {
          "$ref": "#/definitions/StatusColor"
        },
        "hidden": {
          "type": "boolean",
          "description": "Custom status is hidden"
        },
        "name": {
          "type": "string",
          "description": "Name (128 symbols max)"
        },
        "id": {
          "$ref": "#/definitions/CustomStatusId"
        },
        "group": {
          "$ref": "#/definitions/TaskStatus"
        }
      },
      "description": "ID and group cannot be set simultaneously in request parameter,\nbut ID is required for update, and group is required for insert"
    },
    "UserScheduleExclusionId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "AsyncJobType": {
      "type": "string",
      "enum": [
        "TaskBlueprintLaunch",
        "SubmitRequestForm",
        "CopyFolder",
        "FolderBlueprintLaunch"
      ]
    },
    "AccessRoleId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "ApprovalType": {
      "type": "string",
      "enum": [
        "FilesOnly",
        "Regular"
      ]
    },
    "Approval": {
      "type": "object",
      "properties": {
        "dueDate": {
          "type": "string",
          "description": "Due date, if exists"
        },
        "description": {
          "type": "string",
          "description": "Description"
        },
        "finished": {
          "type": "boolean",
          "description": "Is approval finished"
        },
        "updatedDate": {
          "type": "string",
          "description": "Update date"
        },
        "authorId": {
          "$ref": "#/definitions/UserId"
        },
        "title": {
          "type": "string",
          "description": "Title. Empty by default, set via workflow automation or by user on the portal"
        },
        "type": {
          "$ref": "#/definitions/ApprovalType"
        },
        "autoFinishOnReject": {
          "type": "boolean",
          "description": "Is approval would be finished automatically on reaching Rejected status"
        },
        "folderId": {
          "$ref": "#/definitions/FolderId"
        },
        "finisherId": {
          "$ref": "#/definitions/UserId"
        },
        "autoFinishOnApprove": {
          "type": "boolean",
          "description": "Is approval would be finished automatically on reaching Approved status"
        },
        "decisions": {
          "type": "array",
          "description": "Approvers and their decisions",
          "items": {
            "$ref": "#/definitions/ApprovalDecision"
          }
        },
        "attachmentIds": {
          "type": "array",
          "description": "ID of origin version attachments in review",
          "items": {
            "$ref": "#/definitions/AttachmentId"
          }
        },
        "id": {
          "$ref": "#/definitions/ApprovalId"
        },
        "taskId": {
          "$ref": "#/definitions/TaskId"
        },
        "status": {
          "$ref": "#/definitions/ApprovalStatus"
        }
      }
    },
    "CopyFolderAsyncResult": {
      "type": "object",
      "properties": {
        "folderId": {
          "type": "string"
        }
      },
      "description": "Async copy folder result"
    },
    "BudgetRateProvision": {
      "required": [
        "contact",
        "rateType",
        "rateSource"
      ],
      "type": "object",
      "properties": {
        "rateValue": {
          "type": "number",
          "description": "Rate value is displayed to 2 decimal places. More digits will be rounded arithmetically to 2 decimal places. No need to specify rate value if rate source is \"job role\""
        },
        "rateType": {
          "$ref": "#/definitions/BudgetRateType"
        },
        "contact": {
          "$ref": "#/definitions/UserId"
        },
        "rateSource": {
          "$ref": "#/definitions/BudgetRateSource"
        }
      }
    },
    "RollupSettings": {
      "type": "object",
      "properties": {
        "itemId": {
          "$ref": "#/definitions/TaskId"
        },
        "rollupSettings": {
          "type": "array",
          "description": "Rollup settings for fields",
          "items": {
            "$ref": "#/definitions/FieldRollupSettings"
          }
        }
      }
    },
    "CustomFieldCurrency": {
      "type": "string",
      "enum": [
        "CHF",
        "ARS",
        "MXN",
        "QAR",
        "SAR",
        "CLP",
        "ZAR",
        "INR",
        "VND",
        "THB",
        "CNY",
        "AUD",
        "ILS",
        "KRW",
        "JPY",
        "PLN",
        "GBP",
        "IDR",
        "HUF",
        "AMD",
        "PHP",
        "BYR",
        "TRY",
        "BWP",
        "RUB",
        "AED",
        "HKD",
        "TWD",
        "EUR",
        "COP",
        "DKK",
        "USD",
        "CAD",
        "MYR",
        "NOK",
        "RON",
        "SGD",
        "CZK",
        "AZN",
        "PEN",
        "SEK",
        "NZD",
        "BRL",
        "UAH"
      ]
    },
    "Space": {
      "type": "object",
      "properties": {
        "accessType": {
          "$ref": "#/definitions/SpaceAccessType"
        },
        "archived": {
          "type": "boolean",
          "description": "Space is archived"
        },
        "defaultTaskWorkflowId": {
          "$ref": "#/definitions/WorkflowId"
        },
        "guestRoleId": {
          "$ref": "#/definitions/AccessRoleId"
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "members": {
          "type": "array",
          "description": "Space members",
          "items": {
            "$ref": "#/definitions/SpaceMember"
          }
        },
        "description": {
          "type": "string",
          "description": "Description"
        },
        "suggestedProjectWorkflowIds": {
          "type": "array",
          "description": "Suggested project workflows IDs for a space.",
          "items": {
            "$ref": "#/definitions/WorkflowId"
          }
        },
        "id": {
          "$ref": "#/definitions/SpaceId"
        },
        "suggestedTaskWorkflowIds": {
          "type": "array",
          "description": "Suggested task workflows IDs for a space",
          "items": {
            "$ref": "#/definitions/WorkflowId"
          }
        },
        "title": {
          "type": "string",
          "description": "Title"
        },
        "defaultProjectWorkflowId": {
          "$ref": "#/definitions/WorkflowId"
        }
      }
    },
    "AuditLogId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "FolderProjectCreate": {
      "type": "object",
      "properties": {
        "ownerIds": {
          "type": "array",
          "description": "List of project owner IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "endDate": {
          "type": "string",
          "description": "Project end date"
        },
        "contractType": {
          "$ref": "#/definitions/ContractType"
        },
        "customStatusId": {
          "type": "string",
          "description": "Project custom status ID. Use this parameter if status value is not one of specified above"
        },
        "startDate": {
          "type": "string",
          "description": "Project start date"
        },
        "status": {
          "$ref": "#/definitions/ProjectStatus"
        },
        "budget": {
          "type": "number",
          "description": "Budget"
        }
      }
    },
    "Workflow": {
      "type": "object",
      "properties": {
        "standard": {
          "type": "boolean",
          "description": "Defines default workflow"
        },
        "hidden": {
          "type": "boolean",
          "description": "Workflow is hidden"
        },
        "customStatuses": {
          "type": "array",
          "description": "Custom statuses",
          "items": {
            "$ref": "#/definitions/CustomStatus"
          }
        },
        "name": {
          "type": "string",
          "description": "Name (128 symbols max)"
        },
        "id": {
          "$ref": "#/definitions/WorkflowId"
        }
      }
    },
    "Booking": {
      "type": "object",
      "properties": {
        "responsiblePlaceholderId": {
          "$ref": "#/definitions/PlaceholderId"
        },
        "bookingDates": {
          "$ref": "#/definitions/BookingDates"
        },
        "responsibleId": {
          "$ref": "#/definitions/UserId"
        },
        "id": {
          "$ref": "#/definitions/BookingId"
        },
        "effortAllocation": {
          "$ref": "#/definitions/BookingEffort"
        },
        "title": {
          "type": "string",
          "description": "Title"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID"
        }
      }
    },
    "WorkWeek": {
      "required": [
        "workDays"
      ],
      "type": "object",
      "properties": {
        "workDays": {
          "type": "array",
          "description": "List of work days",
          "items": {
            "$ref": "#/definitions/WeekDay"
          }
        },
        "capacityMinutes": {
          "type": "number",
          "description": "Custom capacity in minutes"
        }
      }
    },
    "FolderId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "Dependency": {
      "type": "object",
      "properties": {
        "relationType": {
          "$ref": "#/definitions/DependencyRelationType"
        },
        "successorId": {
          "$ref": "#/definitions/TaskId"
        },
        "lagTime": {
          "type": "number",
          "description": "Always in minutes, positive numbers are lag time and negative numbers are lead time"
        },
        "id": {
          "$ref": "#/definitions/DependencyId"
        },
        "predecessorId": {
          "$ref": "#/definitions/TaskId"
        }
      }
    },
    "EDiscoveryScope": {
      "type": "string",
      "enum": [
        "task",
        "folder",
        "attachment",
        "project",
        "space"
      ]
    },
    "BookingEffort": {
      "required": [
        "mode"
      ],
      "type": "object",
      "properties": {
        "mode": {
          "$ref": "#/definitions/EffortMode"
        },
        "totalEffort": {
          "type": "number",
          "description": "Total Effort in minutes"
        },
        "responsibleAllocation": {
          "type": "array",
          "description": "Responsible allocations by day",
          "items": {
            "$ref": "#/definitions/ResponsibleAllocation"
          }
        }
      }
    },
    "CustomFieldAggregationType": {
      "type": "string",
      "enum": [
        "Average",
        "Sum",
        "None"
      ]
    },
    "AsyncJobResult": {},
    "JobRole": {
      "type": "object",
      "properties": {
        "isDeleted": {
          "type": "boolean",
          "description": "Job Role is deleted"
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "id": {
          "$ref": "#/definitions/JobRoleId"
        },
        "shortTitle": {
          "type": "string",
          "description": "Short title"
        },
        "title": {
          "type": "string",
          "description": "Title"
        }
      }
    },
    "InstantRange": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "description": "Range start"
        },
        "end": {
          "type": "string",
          "description": "Range end"
        }
      }
    },
    "DependencyId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "IdsType": {
      "type": "string",
      "enum": [
        "ApiV2Task",
        "ApiV2Attachment",
        "ApiV2Comment",
        "ApiV2Folder",
        "ApiV2Timelog",
        "ApiV2User",
        "ApiV2Account",
        "ApiV2RequestForm"
      ]
    },
    "SpaceAccessType": {
      "type": "string",
      "enum": [
        "Locked",
        "Personal",
        "Private",
        "Public"
      ]
    },
    "CustomFieldSharing": {
      "type": "object",
      "properties": {
        "readerIds": {
          "type": "array",
          "description": "Users who can see the field.<br>\n<ul>\n<li>null – everyone can read values</li>\n<li>empty – available for space custom fields only. When readerIds is empty, spaceReaders must be non-null. It means that read access is granted only via space membership (spaceReaders)</li>\n</ul>\n",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "spaceReaders": {
          "$ref": "#/definitions/CustomFieldSharingSpaceMembership"
        },
        "spaceWriters": {
          "$ref": "#/definitions/CustomFieldSharingSpaceMembership"
        },
        "writerIds": {
          "type": "array",
          "description": "Users who can edit field values.<br>\n<ul>\n<li>null – everyone can edit values. Allowed only when readerIds == null</li>\n<li>empty – if spaceWriters is null, then nobody can edit values. Otherwise, write access is granted only via space membership (spaceWriters)</li>\n</ul>\n<br>\nVarious system actions (request form submission, automation action...) are not affected by this setting\n",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        }
      }
    },
    "TaskBlueprint": {
      "type": "object",
      "properties": {
        "childIds": {
          "type": "array",
          "description": "Child Blueprint IDs",
          "items": {
            "$ref": "#/definitions/TaskBlueprintId"
          }
        },
        "scope": {
          "$ref": "#/definitions/BlueprintTreeScope"
        },
        "id": {
          "$ref": "#/definitions/TaskBlueprintId"
        },
        "title": {
          "type": "string",
          "description": "Title"
        }
      }
    },
    "Apiv3Version": {
      "type": "object",
      "properties": {
        "major": {
          "type": "number",
          "description": "Major version number"
        },
        "minor": {
          "type": "number",
          "description": "Minor version number"
        }
      }
    },
    "UserType": {
      "type": "string",
      "enum": [
        "Group",
        "Invitation",
        "Asset",
        "Person",
        "Robot"
      ]
    },
    "ApprovalDecision": {
      "required": [
        "approverId",
        "comment",
        "status",
        "updatedDate"
      ],
      "type": "object",
      "properties": {
        "approverId": {
          "$ref": "#/definitions/UserId"
        },
        "comment": {
          "type": "string",
          "description": "comment"
        },
        "updatedDate": {
          "type": "string",
          "description": "update date"
        },
        "status": {
          "$ref": "#/definitions/ApprovalDecisionStatus"
        }
      }
    },
    "Group": {
      "type": "object",
      "properties": {
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "metadata": {
          "type": "array",
          "description": "List of group metadata entries",
          "items": {
            "$ref": "#/definitions/Metadata"
          }
        },
        "childIds": {
          "type": "array",
          "description": "List of child group IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "parentIds": {
          "type": "array",
          "description": "List of parent group IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "myTeam": {
          "type": "boolean",
          "description": "Field is present and set to true for My Team (default) group"
        },
        "id": {
          "$ref": "#/definitions/UserId"
        },
        "title": {
          "type": "string",
          "description": "Group title"
        },
        "memberIds": {
          "type": "array",
          "description": "List of group members user IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        }
      }
    },
    "Placeholder": {
      "type": "object",
      "properties": {
        "deleted": {
          "type": "boolean",
          "description": "True if Placeholder is deleted, false otherwise"
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "jobRoleId": {
          "$ref": "#/definitions/JobRoleId"
        },
        "id": {
          "$ref": "#/definitions/PlaceholderId"
        },
        "shortTitle": {
          "type": "string",
          "description": "Short title"
        },
        "title": {
          "type": "string",
          "description": "Title"
        }
      }
    },
    "TaskId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "CustomFieldDescription": {
      "type": "object",
      "properties": {
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "spaceId": {
          "$ref": "#/definitions/SpaceId"
        },
        "settings": {
          "$ref": "#/definitions/CustomFieldSettings"
        },
        "sharedIds": {
          "type": "array",
          "description": "Users with whom the custom field is shared. Field is obsolete, use 'sharing' to get more relevant access settings",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "id": {
          "$ref": "#/definitions/CustomFieldId"
        },
        "title": {
          "type": "string",
          "description": "Custom field title"
        },
        "type": {
          "$ref": "#/definitions/CustomFieldType"
        },
        "sharing": {
          "$ref": "#/definitions/CustomFieldSharing"
        }
      }
    },
    "FieldRollupSettings": {
      "required": [
        "fieldId",
        "system",
        "isEnabled",
        "canToggle"
      ],
      "type": "object",
      "properties": {
        "system": {
          "type": "boolean",
          "description": "System field"
        },
        "isEnabled": {
          "type": "boolean",
          "description": "Rollup state for field"
        },
        "canToggle": {
          "type": "boolean",
          "description": "Whether the rollup can be toggled for field"
        },
        "fieldId": {
          "type": "string",
          "description": "Id of field: custom field or one of system fields: StartDate, DueDate, Effort, BookedEffort, PlannedFees, ActualFees, PlannedCost, ActualCost, TimeSpent\n"
        }
      }
    },
    "Metadata": {
      "required": [
        "key",
        "value"
      ],
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "Value should be less than 1000 symbols, compatible with JSON string. Use JSON 'null' in order to remove metadata entry"
        },
        "key": {
          "type": "string",
          "description": "Key should be less than 50 symbols and match following regular expression ([A-Za-z0-9_-]+)"
        }
      },
      "description": "Metadata entries are isolated on per-client (application) basis"
    },
    "BudgetRateHistoryItem": {
      "required": [
        "rateSource",
        "rateValue",
        "startDate"
      ],
      "type": "object",
      "properties": {
        "rateValue": {
          "type": "number",
          "description": "Rate value is displayed to 2 decimal places"
        },
        "endDate": {
          "type": "string",
          "description": "The date when the rate became no longer effective and change to another rate"
        },
        "rateSource": {
          "$ref": "#/definitions/BudgetRateSource"
        },
        "startDate": {
          "type": "string",
          "description": "The date when the rate became effective"
        }
      }
    },
    "AsyncJobId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "UserAvatarColor": {
      "type": "string",
      "enum": [
        "Purple1",
        "Purple2",
        "Blue1",
        "Pink1",
        "Pink2",
        "Red1",
        "Red2",
        "Turquoise1",
        "Turquoise2",
        "Blue2",
        "DarkBlue1",
        "Green2",
        "DarkBlue2",
        "Green1",
        "Yellow1",
        "Yellow2",
        "Orange2",
        "DarkCyan2",
        "Orange1",
        "DarkCyan1",
        "YellowGreen2",
        "YellowGreen1"
      ]
    },
    "Folder": {
      "type": "object",
      "properties": {
        "color": {
          "$ref": "#/definitions/FolderColor"
        },
        "customItemTypeId": {
          "$ref": "#/definitions/EntityTypeId"
        },
        "childIds": {
          "type": "array",
          "description": "Child folder IDs",
          "items": {
            "$ref": "#/definitions/FolderId"
          }
        },
        "scope": {
          "$ref": "#/definitions/TreeScope"
        },
        "project": {
          "$ref": "#/definitions/FolderProject"
        },
        "id": {
          "$ref": "#/definitions/FolderId"
        },
        "title": {
          "type": "string",
          "description": "Title"
        },
        "space": {
          "type": "boolean",
          "description": "Is folder a space"
        }
      }
    },
    "CustomFieldLinkToDatabaseMirrorField": {
      "required": [
        "dataHubFieldId",
        "customFieldId"
      ],
      "type": "object",
      "properties": {
        "dataHubFieldId": {
          "type": "string",
          "description": "DataHub field identifier in DataHub Public API format"
        },
        "customFieldId": {
          "type": "string",
          "description": "Custom field id of this mirror"
        }
      }
    },
    "CustomFieldComparator": {
      "type": "string",
      "enum": [
        "IsEmpty",
        "ContainsAny",
        "NotInRange",
        "LessOrEqualTo",
        "StartsWith",
        "ContainsAll",
        "EqualTo",
        "LessThan",
        "GreaterOrEqualTo",
        "IsNotEmpty",
        "GreaterThan",
        "InRange",
        "Contains",
        "EndsWith"
      ]
    },
    "CustomFieldMirrorField": {
      "required": [
        "dataHubFieldId",
        "linkToDatabaseCustomFieldId"
      ],
      "type": "object",
      "properties": {
        "dataHubFieldId": {
          "type": "string",
          "description": "DataHub field identifier in DataHub Public API format"
        },
        "linkToDatabaseCustomFieldId": {
          "type": "string",
          "description": "Link to Database custom field id  of this mirror"
        }
      }
    },
    "RescheduleMode": {
      "type": "string",
      "enum": [
        "Start",
        "End"
      ]
    },
    "ErrorType": {
      "type": "string",
      "enum": [
        "invalid_request",
        "invalid_parameter",
        "parameter_required",
        "not_authorized",
        "access_forbidden",
        "not_allowed",
        "resource_not_found",
        "method_not_found",
        "too_many_requests",
        "rate_limit_exceeded",
        "server_error"
      ]
    },
    "DailyAllocation": {
      "required": [
        "date",
        "effortMinutes"
      ],
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "description": "Allocation date"
        },
        "effortMinutes": {
          "type": "number",
          "description": "Effort in minutes"
        }
      }
    },
    "BudgetRate": {
      "required": [
        "rateSource"
      ],
      "type": "object",
      "properties": {
        "rateValue": {
          "type": "number",
          "description": "Rate value is displayed to 2 decimal places. More digits will be rounded arithmetically to 2 decimal places. No need to specify rate value if rate source is \"job role\""
        },
        "rateScope": {
          "$ref": "#/definitions/BudgetRateScope"
        },
        "rateSource": {
          "$ref": "#/definitions/BudgetRateSource"
        }
      }
    },
    "TaskDates": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "number",
          "description": "Duration in minutes. Duration is present in Planned tasks and is optional for Backlog tasks.<br>\nWhen updating duration, ensure to re-submit the start and due dates, even if they are to stay the same. Otherwise, the dates will be cleared.<br>\nWhen present for Planned tasks and due date is not given, this field limit is [1, 1800000).<br>\nNote that 1 day in Wrike is equal to 8 hours, or 480 minutes."
        },
        "due": {
          "type": "string",
          "description": "Due date is present only in Planned and Milestone tasks. When setting this field alone, the task will default to a milestone."
        },
        "start": {
          "type": "string",
          "description": "Start date is present only in Planned tasks. Important: If setting a start date, always include either a due date or duration."
        },
        "workOnWeekends": {
          "type": "boolean",
          "description": "Weekends are included in task scheduling"
        },
        "type": {
          "$ref": "#/definitions/TaskDatesType"
        }
      },
      "description": "Field values limits:\nduration - [0, 1800000)\nstart & due - [1970-01-01T00:00:00, 2100-01-01T00:00:00)"
    },
    "EntityTypeId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "TaskBlueprintId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "CustomFieldInheritanceType": {
      "type": "string",
      "enum": [
        "All",
        "Tasks",
        "Projects",
        "Folders"
      ]
    },
    "CustomFieldLinkToDatabaseField": {
      "required": [
        "dataHubDatabaseId",
        "allowMultipleEntries"
      ],
      "type": "object",
      "properties": {
        "allowMultipleEntries": {
          "type": "boolean",
          "description": "Allow linkage of multiple records"
        },
        "dataHubDatabaseId": {
          "type": "string",
          "description": "DataHub database identifier in DataHub Public API format"
        },
        "mirrorFields": {
          "type": "array",
          "description": "Mirror fields associated with this link",
          "items": {
            "$ref": "#/definitions/CustomFieldLinkToDatabaseMirrorField"
          }
        }
      }
    },
    "BudgetRateSource": {
      "type": "string",
      "enum": [
        "JobRole",
        "User"
      ]
    },
    "TimelogFinance": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "description": "Currency"
        },
        "actualFees": {
          "type": "number",
          "description": "Actual fees"
        },
        "actualCost": {
          "type": "number",
          "description": "Actual cost"
        }
      }
    },
    "CustomFieldInfo": {
      "required": [
        "id",
        "accountId",
        "title",
        "type",
        "sharedIds",
        "sharing"
      ],
      "type": "object",
      "properties": {
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "spaceId": {
          "$ref": "#/definitions/SpaceId"
        },
        "settings": {
          "$ref": "#/definitions/CustomFieldSettings"
        },
        "sharedIds": {
          "type": "array",
          "description": "Users with whom the custom field is shared. Field is obsolete, use 'sharing' to get more relevant access settings",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "id": {
          "$ref": "#/definitions/CustomFieldId"
        },
        "title": {
          "type": "string",
          "description": "Custom field title"
        },
        "type": {
          "$ref": "#/definitions/CustomFieldType"
        },
        "sharing": {
          "$ref": "#/definitions/CustomFieldSharing"
        }
      }
    },
    "TaskDatesType": {
      "type": "string",
      "enum": [
        "Milestone",
        "Backlog",
        "Planned"
      ]
    },
    "FolderBlueprintId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "DataExportForeignKeySchema": {
      "required": [
        "tableId",
        "columnId"
      ],
      "type": "object",
      "properties": {
        "columnId": {
          "type": "string",
          "description": "Foreign column id"
        },
        "tableId": {
          "type": "string",
          "description": "Foreign table id"
        }
      }
    },
    "TaskFinance": {
      "type": "object",
      "properties": {
        "plannedCost": {
          "type": "number",
          "description": "Planned cost"
        },
        "plannedFees": {
          "type": "number",
          "description": "Planned fees"
        },
        "currency": {
          "type": "string",
          "description": "Currency"
        },
        "actualFees": {
          "type": "number",
          "description": "Actual fees"
        },
        "actualCost": {
          "type": "number",
          "description": "Actual cost"
        }
      }
    },
    "EffortMode": {
      "type": "string",
      "enum": [
        "Basic",
        "Flexible",
        "FullTime",
        "None"
      ]
    },
    "SpaceMember": {
      "required": [
        "id",
        "accessRoleId",
        "isManager"
      ],
      "type": "object",
      "properties": {
        "accessRoleId": {
          "$ref": "#/definitions/AccessRoleId"
        },
        "isManager": {
          "type": "boolean",
          "description": "User is Space manager"
        },
        "id": {
          "$ref": "#/definitions/UserId"
        }
      }
    },
    "CustomFieldFilter": {
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "comparator": {
          "$ref": "#/definitions/CustomFieldComparator"
        },
        "minValue": {
          "type": "string",
          "description": "Custom field min value"
        },
        "maxValue": {
          "type": "string",
          "description": "Custom field max value"
        },
        "values": {
          "type": "array",
          "description": "Custom field possible values",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "$ref": "#/definitions/CustomFieldId"
        },
        "value": {
          "type": "string",
          "description": "Custom field value"
        }
      }
    },
    "TimesheetApprovalStatus": {
      "type": "string",
      "enum": [
        "NotSubmitted",
        "Approved",
        "Rejected",
        "Pending"
      ]
    },
    "ApprovalId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "FolderProjectUpdate": {
      "type": "object",
      "properties": {
        "ownersRemove": {
          "type": "array",
          "description": "List of userIds to be removed from owners",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "endDate": {
          "type": "string",
          "description": "Project end date (null value to remove)"
        },
        "contractType": {
          "$ref": "#/definitions/ContractType"
        },
        "customStatusId": {
          "type": "string",
          "description": "Project custom status ID. Use this parameter if status value is not one of specified above"
        },
        "ownersAdd": {
          "type": "array",
          "description": "List of userIds to be added as owners",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "startDate": {
          "type": "string",
          "description": "Project start date (null value to remove)"
        },
        "status": {
          "$ref": "#/definitions/ProjectStatus"
        },
        "budget": {
          "type": "number",
          "description": "Budget"
        }
      }
    },
    "TaskStatus": {
      "type": "string",
      "enum": [
        "Active",
        "Deferred",
        "Completed",
        "Cancelled"
      ]
    },
    "ResponsibleAllocation": {
      "required": [
        "dailyAllocation"
      ],
      "type": "object",
      "properties": {
        "placeholderId": {
          "$ref": "#/definitions/PlaceholderId"
        },
        "dailyAllocation": {
          "type": "array",
          "description": "Daily allocations",
          "items": {
            "$ref": "#/definitions/DailyAllocation"
          }
        },
        "userId": {
          "$ref": "#/definitions/UserId"
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "properties": {
        "errorDescription": {
          "type": "string"
        },
        "error": {
          "$ref": "#/definitions/ErrorType"
        }
      }
    },
    "ProjectStatus": {
      "type": "string",
      "enum": [
        "Red",
        "OnHold",
        "Yellow",
        "Completed",
        "Custom",
        "Cancelled",
        "Green"
      ]
    },
    "CustomFieldSharingSpaceMembership": {
      "type": "string",
      "enum": [
        "Admin",
        "Member"
      ]
    },
    "AccountSubscription": {
      "required": [
        "type",
        "suspended",
        "paid",
        "userLimit"
      ],
      "type": "object",
      "properties": {
        "paid": {
          "type": "boolean",
          "description": "Subscription is paid (available only to account admins)"
        },
        "type": {
          "$ref": "#/definitions/AccountSubscriptionType"
        },
        "userLimit": {
          "type": "number",
          "description": "Limit of subscription users (available only to account admins)"
        },
        "suspended": {
          "type": "boolean",
          "description": "Account is suspended"
        }
      }
    },
    "LocalDateTimeRange": {
      "type": "object",
      "properties": {
        "equal": {
          "type": "string",
          "description": "Date exact match value"
        },
        "start": {
          "type": "string",
          "description": "Range start"
        },
        "end": {
          "type": "string",
          "description": "Range end"
        }
      }
    },
    "FolderChangeHistory": {
      "type": "object",
      "properties": {
        "project": {
          "$ref": "#/definitions/FolderProjectHistory"
        },
        "id": {
          "$ref": "#/definitions/FolderId"
        }
      }
    },
    "Task": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "array",
          "description": "List of task metadata entries",
          "items": {
            "$ref": "#/definitions/Metadata"
          }
        },
        "importance": {
          "$ref": "#/definitions/TaskImportance"
        },
        "customFields": {
          "type": "array",
          "description": "Custom fields",
          "items": {
            "$ref": "#/definitions/CustomField"
          }
        },
        "followerIds": {
          "type": "array",
          "description": "List of user IDs, who follows task",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "parentIds": {
          "type": "array",
          "description": "List of task parent folder IDs",
          "items": {
            "$ref": "#/definitions/FolderId"
          }
        },
        "description": {
          "type": "string",
          "description": "Description"
        },
        "responsiblePlaceholderIds": {
          "type": "array",
          "description": "List of placeholder assignee Ids",
          "items": {
            "$ref": "#/definitions/PlaceholderId"
          }
        },
        "updatedDate": {
          "type": "string",
          "description": "Updated date"
        },
        "title": {
          "type": "string",
          "description": "Title, cannot be empty"
        },
        "followedByMe": {
          "type": "boolean",
          "description": "Is a task followed by me"
        },
        "billingType": {
          "$ref": "#/definitions/BillingType"
        },
        "scope": {
          "$ref": "#/definitions/TreeScope"
        },
        "id": {
          "$ref": "#/definitions/TaskId"
        },
        "effortAllocation": {
          "$ref": "#/definitions/TaskEffort"
        },
        "hasAttachments": {
          "type": "boolean",
          "description": "Has attachments"
        },
        "subTaskIds": {
          "type": "array",
          "description": "List of subtask IDs",
          "items": {
            "$ref": "#/definitions/TaskId"
          }
        },
        "recurrent": {
          "type": "boolean",
          "description": "Is a task recurrent"
        },
        "authorIds": {
          "type": "array",
          "description": "List of author IDs (currently contains 1 element)",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "responsibleIds": {
          "type": "array",
          "description": "List of assignee user IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "customItemTypeId": {
          "$ref": "#/definitions/EntityTypeId"
        },
        "sharedIds": {
          "type": "array",
          "description": "Users with whom the task is shared",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "dates": {
          "$ref": "#/definitions/TaskDates"
        },
        "superTaskIds": {
          "type": "array",
          "description": "List of super task IDs",
          "items": {
            "$ref": "#/definitions/TaskId"
          }
        },
        "priority": {
          "type": "string",
          "description": "Ordering key that defines task order in tasklist"
        },
        "completedDate": {
          "type": "string",
          "description": "Completed date"
        },
        "superParentIds": {
          "type": "array",
          "description": "List of folder IDs inherited from parent task",
          "items": {
            "$ref": "#/definitions/FolderId"
          }
        },
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "dependencyIds": {
          "type": "array",
          "description": "List of dependency IDs",
          "items": {
            "$ref": "#/definitions/DependencyId"
          }
        },
        "createdDate": {
          "type": "string",
          "description": "Created date"
        },
        "customStatusId": {
          "$ref": "#/definitions/CustomStatusId"
        },
        "attachmentCount": {
          "type": "number",
          "description": "Total count of task attachments"
        },
        "permalink": {
          "type": "string",
          "description": "Link to open task in web workspace, if user has appropriate access"
        },
        "briefDescription": {
          "type": "string",
          "description": "Brief description"
        },
        "finance": {
          "$ref": "#/definitions/TaskFinance"
        },
        "status": {
          "$ref": "#/definitions/TaskStatus"
        }
      }
    },
    "AccountId": {
      "pattern": "^([A-Z0-9]){8}$",
      "type": "string"
    },
    "Attachment": {
      "type": "object",
      "properties": {
        "currentAttachmentId": {
          "$ref": "#/definitions/AttachmentId"
        },
        "originVersionId": {
          "$ref": "#/definitions/AttachmentId"
        },
        "reviewIds": {
          "type": "array",
          "description": "Review IDs",
          "items": {
            "$ref": "#/definitions/ReviewId"
          }
        },
        "previewUrl": {
          "type": "string",
          "description": "Link to download external attachment preview (present if preview is available)"
        },
        "playlistUrl": {
          "type": "string",
          "description": "Link to video playlist"
        },
        "authorId": {
          "$ref": "#/definitions/UserId"
        },
        "type": {
          "$ref": "#/definitions/AttachmentType"
        },
        "version": {
          "type": "number",
          "description": "Attachment version"
        },
        "folderId": {
          "type": "string",
          "description": "ID of related folder. Only one of taskId/folderId fields is present"
        },
        "url": {
          "type": "string",
          "description": "Link to download attachment"
        },
        "createdDate": {
          "type": "string",
          "description": "Upload date"
        },
        "size": {
          "type": "number",
          "description": "Size for Wrike Attachments. For external attachments, size is equal to -1"
        },
        "name": {
          "type": "string",
          "description": "Attachment filename"
        },
        "width": {
          "type": "number",
          "description": "Attachment width, if image"
        },
        "commentId": {
          "type": "string",
          "description": "ID of related comment"
        },
        "id": {
          "$ref": "#/definitions/AttachmentId"
        },
        "contentType": {
          "type": "string",
          "description": "Content type"
        },
        "taskId": {
          "type": "string",
          "description": "ID of related task. Only one of taskId/folderId fields is present"
        },
        "height": {
          "type": "number",
          "description": "Attachment height, if image"
        }
      }
    },
    "CustomFieldDropdownOption": {
      "required": [
        "value"
      ],
      "type": "object",
      "properties": {
        "color": {
          "$ref": "#/definitions/DropdownOptionColor"
        },
        "value": {
          "type": "string",
          "description": "value"
        }
      }
    },
    "AsyncJob": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/AsyncJobResult"
        },
        "processedCount": {
          "type": "number",
          "description": "Processed count"
        },
        "errorMessage": {
          "type": "string",
          "description": "Error message"
        },
        "progressPercent": {
          "type": "number",
          "description": "Progress percents"
        },
        "id": {
          "$ref": "#/definitions/AsyncJobId"
        },
        "totalCount": {
          "type": "number",
          "description": "Total count"
        },
        "type": {
          "$ref": "#/definitions/AsyncJobType"
        },
        "status": {
          "$ref": "#/definitions/AsyncJobStatus"
        }
      }
    },
    "AuditLog": {
      "type": "object",
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "IP address from which an operation was performed"
        },
        "objectName": {
          "type": "string",
          "description": "Object name"
        },
        "userEmail": {
          "type": "string",
          "description": "Operational user e-mail"
        },
        "details": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "properties": {}
        },
        "id": {
          "$ref": "#/definitions/AuditLogId"
        },
        "operation": {
          "$ref": "#/definitions/AuditLogOperation"
        },
        "userId": {
          "$ref": "#/definitions/UserId"
        },
        "objectId": {
          "type": "string",
          "description": "Object ID"
        },
        "eventDate": {
          "type": "string",
          "description": "Date and time when operation was performed"
        },
        "objectType": {
          "$ref": "#/definitions/AuditLogObjectType"
        }
      }
    },
    "BudgetRatesAggregated": {
      "type": "object",
      "properties": {
        "billRate": {
          "$ref": "#/definitions/BudgetRate"
        },
        "costRate": {
          "$ref": "#/definitions/BudgetRate"
        },
        "rateSubjectId": {
          "$ref": "#/definitions/UserId"
        },
        "rateSubjectType": {
          "$ref": "#/definitions/BudgetRateSubjectType"
        }
      }
    },
    "CustomStatusId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "BookingId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "WorkItemMetadata": {
      "type": "object",
      "properties": {
        "relatedType": {
          "$ref": "#/definitions/CustomItemTypeRelatedType"
        },
        "id": {
          "$ref": "#/definitions/TaskId"
        }
      }
    },
    "Apiv3Apiv2Id": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "API v3 ID"
        },
        "apiV2Id": {
          "type": "string",
          "description": "API v2 legacy ID"
        }
      }
    },
    "WorkScheduleId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "AsyncJobStatus": {
      "type": "string",
      "enum": [
        "InQueue",
        "Failed",
        "Completed",
        "InProgress"
      ]
    },
    "BudgetRateSubjectType": {
      "type": "string",
      "enum": [
        "Placeholder",
        "User"
      ]
    },
    "TreeScope": {
      "type": "string",
      "enum": [
        "WsTask",
        "RbRoot",
        "RbFolder",
        "WsFolder",
        "WsRoot",
        "RbTask"
      ]
    },
    "ContactChangeHistory": {
      "type": "object",
      "properties": {
        "costRateHistory": {
          "type": "array",
          "description": "Cost rate change history",
          "items": {
            "$ref": "#/definitions/BudgetRateHistoryItem"
          }
        },
        "billRateHistory": {
          "type": "array",
          "description": "Bill rate change history",
          "items": {
            "$ref": "#/definitions/BudgetRateHistoryItem"
          }
        },
        "id": {
          "$ref": "#/definitions/UserId"
        }
      }
    },
    "WorkWeekUpdate": {
      "required": [
        "dayOfWeek",
        "isWorkDay"
      ],
      "type": "object",
      "properties": {
        "dayOfWeek": {
          "$ref": "#/definitions/WeekDay"
        },
        "isWorkDay": {
          "type": "boolean",
          "description": "Is it working day"
        }
      }
    },
    "AccessRole": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Role description"
        },
        "id": {
          "$ref": "#/definitions/AccessRoleId"
        },
        "title": {
          "type": "string",
          "description": "Role title"
        }
      }
    },
    "ExternalRequesterId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "Invitation": {
      "type": "object",
      "properties": {
        "userTypeId": {
          "type": "string",
          "description": "Invited User Type ID"
        },
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "firstName": {
          "type": "string",
          "description": "First Name"
        },
        "lastName": {
          "type": "string",
          "description": "LastName"
        },
        "external": {
          "type": "boolean",
          "description": "Is user external"
        },
        "inviterUserId": {
          "$ref": "#/definitions/UserId"
        },
        "role": {
          "$ref": "#/definitions/UserRole"
        },
        "id": {
          "$ref": "#/definitions/InvitationId"
        },
        "email": {
          "type": "string",
          "description": "Email"
        },
        "status": {
          "$ref": "#/definitions/InvitationStatus"
        },
        "invitationDate": {
          "type": "string",
          "description": "Date when invitation was created"
        },
        "resolvedDate": {
          "type": "string",
          "description": "Date when the invitation was resolved"
        }
      }
    },
    "CustomFieldType": {
      "type": "string",
      "enum": [
        "Multiple",
        "Percentage",
        "Text",
        "Duration",
        "CalculatedNumeric",
        "Date",
        "CalculatedDate",
        "Numeric",
        "Contacts",
        "Checkbox",
        "Currency",
        "DropDown",
        "LinkToDatabase"
      ]
    },
    "BookingDates": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "number",
          "description": "Duration in days"
        },
        "workOnWeekends": {
          "type": "boolean",
          "description": "Weekends are included in booking scheduling"
        },
        "finishDate": {
          "type": "string",
          "description": "Finish date"
        },
        "startDate": {
          "type": "string",
          "description": "Start date"
        }
      }
    },
    "UserScheduleException": {
      "type": "object",
      "properties": {
        "fromDate": {
          "type": "string",
          "description": ""
        },
        "isWorkDays": {
          "type": "boolean",
          "description": "True if this exception is for working days"
        },
        "toDate": {
          "type": "string",
          "description": ""
        },
        "exclusionType": {
          "$ref": "#/definitions/UserScheduleExclusionType"
        },
        "id": {
          "$ref": "#/definitions/UserScheduleExclusionId"
        },
        "userId": {
          "$ref": "#/definitions/UserId"
        }
      }
    },
    "BudgetRateScope": {
      "type": "string",
      "enum": [
        "Account",
        "Project"
      ]
    },
    "TaskImportance": {
      "type": "string",
      "enum": [
        "High",
        "Low",
        "Normal"
      ]
    },
    "BudgetMetricHistoryItem": {
      "required": [
        "value",
        "startDate"
      ],
      "type": "object",
      "properties": {
        "endDate": {
          "type": "string",
          "description": "Field's value for the selected end date"
        },
        "value": {
          "type": "number",
          "description": "Field's value"
        },
        "startDate": {
          "type": "string",
          "description": "Field's value for the selected start date"
        }
      }
    },
    "WeekDay": {
      "type": "string",
      "enum": [
        "Thu",
        "Tue",
        "Wed",
        "Sat",
        "Fri",
        "Sun",
        "Mon"
      ]
    },
    "DropdownOptionColor": {
      "type": "string",
      "enum": [
        "Brown",
        "DarkCyan",
        "Gray",
        "Blue",
        "DarkBlue",
        "Orange",
        "Red",
        "YellowGreen",
        "Purple",
        "Yellow",
        "Indigo",
        "Turquoise",
        "DarkRed",
        "Green"
      ]
    },
    "DataExportColumnSchema": {
      "required": [
        "id",
        "alias",
        "dataType"
      ],
      "type": "object",
      "properties": {
        "dataType": {
          "type": "string",
          "description": "Column data type"
        },
        "alias": {
          "type": "string",
          "description": "Column alias"
        },
        "id": {
          "type": "string",
          "description": "Column id"
        },
        "foreignKey": {
          "$ref": "#/definitions/DataExportForeignKeySchema"
        }
      }
    },
    "CustomFieldScope": {
      "type": "string",
      "enum": [
        "Space",
        "Account"
      ]
    },
    "TimelogCategoryId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "TimesheetSubmissionRule": {
      "type": "object",
      "properties": {
        "ruleType": {
          "$ref": "#/definitions/TimesheetSubmissionRuleType"
        },
        "workScheduleId": {
          "$ref": "#/definitions/WorkScheduleId"
        },
        "enabled": {
          "type": "boolean",
          "description": "Current state of timesheet submission rule"
        },
        "frequency": {
          "$ref": "#/definitions/TimesheetSubmissionRuleFrequency"
        }
      }
    },
    "ContractType": {
      "type": "string",
      "enum": [
        "Billable",
        "NonBillable"
      ]
    },
    "WorkScheduleExclusionId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "PreviewSize": {
      "type": "string",
      "enum": [
        "w44",
        "w300",
        "w400",
        "w100",
        "h400",
        "w200",
        "full"
      ]
    },
    "WorkScheduleExclusionType": {
      "type": "string",
      "enum": [
        "PublicHolidays",
        "OtherEvent",
        "AdditionalWorkDays"
      ]
    },
    "InvitationId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "FolderProject": {
      "required": [
        "ownerIds",
        "status"
      ],
      "type": "object",
      "properties": {
        "createdDate": {
          "type": "string",
          "description": "Project created date"
        },
        "ownerIds": {
          "type": "array",
          "description": "List of project owner IDs",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "endDate": {
          "type": "string",
          "description": "Project end date"
        },
        "contractType": {
          "$ref": "#/definitions/ContractType"
        },
        "customStatusId": {
          "$ref": "#/definitions/CustomStatusId"
        },
        "authorId": {
          "$ref": "#/definitions/UserId"
        },
        "startDate": {
          "type": "string",
          "description": "Project start date"
        },
        "completedDate": {
          "type": "string",
          "description": "Project completed date"
        },
        "finance": {
          "$ref": "#/definitions/FolderProjectFinance"
        },
        "status": {
          "$ref": "#/definitions/ProjectStatus"
        }
      }
    },
    "Rates": {
      "type": "object",
      "properties": {
        "rateValue": {
          "type": "number",
          "description": "Rate value is displayed to 2 decimal places. More digits will be rounded arithmetically to 2 decimal places. No need to specify rate value if rate source is \"job role\""
        },
        "rateType": {
          "$ref": "#/definitions/BudgetRateType"
        },
        "contact": {
          "$ref": "#/definitions/UserId"
        },
        "rateSource": {
          "$ref": "#/definitions/BudgetRateSource"
        }
      }
    },
    "UserScheduleExclusionType": {
      "type": "string",
      "enum": [
        "VacationPTO",
        "Overtime",
        "OtherNonWorking"
      ]
    },
    "DataExportId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "User": {
      "type": "object",
      "properties": {
        "userTypeId": {
          "type": "string",
          "description": "User Type Id"
        },
        "lastName": {
          "type": "string",
          "description": "Last name"
        },
        "metadata": {
          "type": "array",
          "description": "List of contact metadata entries. Requesting user has read/write access to his own metadata, other entries are read-only",
          "items": {
            "$ref": "#/definitions/Metadata"
          }
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "timezone": {
          "type": "string",
          "description": "Timezone Id, e.g 'America/New_York'"
        },
        "companyName": {
          "type": "string",
          "description": "User Company Name"
        },
        "profiles": {
          "type": "array",
          "description": "List of user profiles in accounts accessible for requesting user",
          "items": {
            "$ref": "#/definitions/UserProfile"
          }
        },
        "type": {
          "$ref": "#/definitions/UserType"
        },
        "locale": {
          "type": "string",
          "description": "Locale"
        },
        "title": {
          "type": "string",
          "description": "User Title"
        },
        "firstName": {
          "type": "string",
          "description": "First name"
        },
        "deleted": {
          "type": "boolean",
          "description": "True if user is deleted, false otherwise"
        },
        "phone": {
          "type": "string",
          "description": "User phone"
        },
        "me": {
          "type": "boolean",
          "description": "Field is present and set to true only for requesting user"
        },
        "myTeam": {
          "type": "boolean",
          "description": "Field is present and set to true for My Team (default) group"
        },
        "location": {
          "type": "string",
          "description": "User location"
        },
        "id": {
          "$ref": "#/definitions/UserId"
        },
        "memberIds": {
          "type": "array",
          "description": "List of group members contact IDs (field is present only for groups)",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "primaryEmail": {
          "type": "string",
          "description": "Primary Email"
        }
      }
    },
    "UserProfile": {
      "required": [
        "accountId",
        "email",
        "role",
        "external",
        "admin",
        "owner",
        "active"
      ],
      "type": "object",
      "properties": {
        "owner": {
          "type": "boolean",
          "description": "Is user account owner"
        },
        "accountId": {
          "$ref": "#/definitions/AccountId"
        },
        "external": {
          "type": "boolean",
          "description": "Is user external"
        },
        "role": {
          "$ref": "#/definitions/UserRole"
        },
        "admin": {
          "type": "boolean",
          "description": "Is user account admin"
        },
        "active": {
          "type": "boolean",
          "description": "Is user active in account"
        },
        "email": {
          "type": "string",
          "description": "Email address associated with account"
        }
      }
    },
    "CustomItemTypeRelatedType": {
      "type": "string",
      "enum": [
        "Project",
        "Task",
        "Folder"
      ]
    },
    "TaskSortField": {
      "type": "string",
      "enum": [
        "Status",
        "Importance",
        "UpdatedDate",
        "Priority",
        "CreatedDate",
        "Title",
        "StartFinishInterval",
        "DueDate",
        "LastAccessDate",
        "CompletedDate"
      ]
    },
    "BudgetRateType": {
      "type": "string",
      "enum": [
        "Bill",
        "Cost"
      ]
    },
    "ModifyFieldRollupSettings": {
      "required": [
        "fieldId",
        "isEnabled"
      ],
      "type": "object",
      "properties": {
        "isEnabled": {
          "type": "boolean",
          "description": "Enable rollup for field"
        },
        "fieldId": {
          "type": "string",
          "description": "Id of field: custom field or one of system fields: StartDate, DueDate, Effort, BookedEffort, PlannedFees, ActualFees, PlannedCost, ActualCost, TimeSpent\n"
        }
      }
    },
    "StatusColor": {
      "type": "string",
      "enum": [
        "Brown",
        "DarkCyan",
        "Gray",
        "Blue",
        "DarkBlue",
        "Orange",
        "Red",
        "YellowGreen",
        "Purple",
        "Yellow",
        "Indigo",
        "DarkRed",
        "Turquoise",
        "Green"
      ]
    },
    "FolderProjectFinance": {
      "type": "object",
      "properties": {
        "plannedCost": {
          "type": "number",
          "description": "Planned cost"
        },
        "plannedFees": {
          "type": "number",
          "description": "Planned fees"
        },
        "currency": {
          "type": "string",
          "description": "Currency"
        },
        "actualFees": {
          "type": "number",
          "description": "Actual fees"
        },
        "actualCost": {
          "type": "number",
          "description": "Actual cost"
        },
        "budget": {
          "type": "number",
          "description": "Budget"
        }
      }
    },
    "Timelog": {
      "type": "object",
      "properties": {
        "approvalStatus": {
          "$ref": "#/definitions/TimesheetApprovalStatus"
        },
        "hours": {
          "type": "number",
          "description": "Hours tracked in timelog record, must be in [0..24] hours range"
        },
        "createdDate": {
          "type": "string",
          "description": "Date of timelog was created"
        },
        "billingType": {
          "$ref": "#/definitions/BillingType"
        },
        "trackedDate": {
          "type": "string",
          "description": "Date for which timelog was recorded"
        },
        "comment": {
          "type": "string",
          "description": "Timelog record comment"
        },
        "id": {
          "$ref": "#/definitions/TimelogId"
        },
        "updatedDate": {
          "type": "string",
          "description": "Date of timelog was updated"
        },
        "userId": {
          "$ref": "#/definitions/UserId"
        },
        "taskId": {
          "$ref": "#/definitions/TaskId"
        },
        "categoryId": {
          "$ref": "#/definitions/TimelogCategoryId"
        },
        "finance": {
          "$ref": "#/definitions/TimelogFinance"
        }
      }
    },
    "CommentType": {
      "type": "string",
      "enum": [
        "Email",
        "Regular"
      ]
    },
    "DataExportTableSchema": {
      "type": "object",
      "properties": {
        "columns": {
          "type": "array",
          "description": "List of exported columns",
          "items": {
            "$ref": "#/definitions/DataExportColumnSchema"
          }
        },
        "alias": {
          "type": "string",
          "description": "Table alias"
        },
        "id": {
          "type": "string",
          "description": "Table id"
        }
      }
    },
    "TaskChangeHistory": {
      "type": "object",
      "properties": {
        "plannedCost": {
          "type": "array",
          "description": "Planned cost change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "plannedFees": {
          "type": "array",
          "description": "Planned fees change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "id": {
          "$ref": "#/definitions/TaskId"
        },
        "actualFees": {
          "type": "array",
          "description": "Actual fees change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "actualCost": {
          "type": "array",
          "description": "Actual cost change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        }
      }
    },
    "BlueprintTreeScope": {
      "type": "string",
      "enum": [
        "TaskBp",
        "BpRoot",
        "FolderBp"
      ]
    },
    "GroupModify": {
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "addMembers": {
          "type": "array",
          "description": "Add specified users to group",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "removeMembers": {
          "type": "array",
          "description": "Remove specified users from group",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "id": {
          "$ref": "#/definitions/UserId"
        }
      }
    },
    "TimelogCategory": {
      "type": "object",
      "properties": {
        "hidden": {
          "type": "boolean",
          "description": "Timelog category is hidden"
        },
        "name": {
          "type": "string",
          "description": "Name of the timelog record"
        },
        "id": {
          "$ref": "#/definitions/TimelogCategoryId"
        },
        "order": {
          "type": "number",
          "description": "Order number of the timelog category in category list"
        }
      }
    },
    "TimesheetSubmissionRuleFrequency": {
      "type": "string",
      "enum": [
        "Week",
        "Day"
      ]
    },
    "TimesheetSubmissionRuleType": {
      "type": "string",
      "enum": [
        "Hard",
        "Soft"
      ]
    },
    "DataExportVersion": {
      "type": "string",
      "enum": [
        "V0",
        "V1",
        "V2"
      ]
    },
    "BillingType": {
      "type": "string",
      "enum": [
        "Billable",
        "NonBillable"
      ]
    },
    "Comment": {
      "type": "object",
      "properties": {
        "externalRequester": {
          "$ref": "#/definitions/ExternalRequester"
        },
        "createdDate": {
          "type": "string",
          "description": "Created date"
        },
        "id": {
          "$ref": "#/definitions/CommentId"
        },
        "text": {
          "type": "string",
          "description": "Comment text"
        },
        "updatedDate": {
          "type": "string",
          "description": "Deprecated because this field gets created date instead of updated date. Please use the createdDate field instead."
        },
        "authorId": {
          "$ref": "#/definitions/UserId"
        },
        "type": {
          "$ref": "#/definitions/CommentType"
        },
        "emailSubject": {
          "type": "string",
          "description": "The subject in case of email comment"
        },
        "taskId": {
          "type": "string",
          "description": "ID of related task. Only one of taskId/folderId fields is present"
        },
        "folderId": {
          "type": "string",
          "description": "ID of related folder. Only one of taskId/folderId fields is present"
        },
        "direction": {
          "type": "string",
          "description": "The direction (Outgoing/Incoming) in case of email comment"
        }
      }
    },
    "AttachmentUrl": {
      "type": "object",
      "properties": {
        "playlistUrl": {
          "type": "string",
          "description": "URL to video playlist of attachment"
        },
        "url": {
          "type": "string",
          "description": "URL by which attachment can be accessed"
        }
      }
    },
    "AttachmentType": {
      "type": "string",
      "enum": [
        "Google",
        "DAM",
        "OneDrive",
        "Wrike",
        "External",
        "Box",
        "SharePoint",
        "DropBox"
      ]
    },
    "ExternalRequester": {
      "required": [
        "id",
        "firstName",
        "email"
      ],
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "The first name of the external requester"
        },
        "lastName": {
          "type": "string",
          "description": "The last name of the external requester"
        },
        "id": {
          "$ref": "#/definitions/ExternalRequesterId"
        },
        "email": {
          "type": "string",
          "description": "The email address of the external requester"
        }
      }
    },
    "TimelogId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "DataExportResource": {
      "required": [
        "name",
        "url"
      ],
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of exported resource"
        },
        "url": {
          "type": "string",
          "description": "Link to a file of exported resource"
        }
      }
    },
    "JobRoleId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "SpaceId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "ColorsInfo": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Color name"
        },
        "hex": {
          "type": "string",
          "description": "HEX code"
        }
      }
    },
    "SortOrder": {
      "type": "string",
      "enum": [
        "Asc",
        "Desc"
      ]
    },
    "ApprovalDecisionStatus": {
      "type": "string",
      "enum": [
        "Approved",
        "Rejected",
        "Pending"
      ]
    },
    "AttachmentId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "Avatar": {
      "required": [
        "letters",
        "color"
      ],
      "type": "object",
      "properties": {
        "color": {
          "type": "string",
          "description": "Hex color code"
        },
        "letters": {
          "type": "string",
          "description": "Group letters (2 symbols max)"
        }
      }
    },
    "CommentId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "Contact": {
      "type": "object",
      "properties": {
        "lastName": {
          "type": "string",
          "description": "Last name"
        },
        "metadata": {
          "type": "array",
          "description": "List of contact metadata entries. Requesting user has read/write access to his own metadata, other entries are read-only",
          "items": {
            "$ref": "#/definitions/Metadata"
          }
        },
        "avatarUrl": {
          "type": "string",
          "description": "Avatar URL"
        },
        "timezone": {
          "type": "string",
          "description": "Timezone Id, e.g 'America/New_York'"
        },
        "currentCostRate": {
          "$ref": "#/definitions/BudgetRate"
        },
        "customFields": {
          "type": "array",
          "description": "Custom fields",
          "items": {
            "$ref": "#/definitions/CustomField"
          }
        },
        "companyName": {
          "type": "string",
          "description": "User Company Name"
        },
        "profiles": {
          "type": "array",
          "description": "List of user profiles in accounts accessible for requesting user",
          "items": {
            "$ref": "#/definitions/UserProfile"
          }
        },
        "type": {
          "$ref": "#/definitions/UserType"
        },
        "locale": {
          "type": "string",
          "description": "Locale"
        },
        "title": {
          "type": "string",
          "description": "User Title"
        },
        "firstName": {
          "type": "string",
          "description": "First name"
        },
        "deleted": {
          "type": "boolean",
          "description": "True if user is deleted, false otherwise"
        },
        "phone": {
          "type": "string",
          "description": "User phone"
        },
        "currentBillRate": {
          "$ref": "#/definitions/BudgetRate"
        },
        "me": {
          "type": "boolean",
          "description": "Field is present and set to true only for requesting user"
        },
        "myTeam": {
          "type": "boolean",
          "description": "Field is present and set to true for My Team (default) group"
        },
        "jobRoleId": {
          "$ref": "#/definitions/JobRoleId"
        },
        "location": {
          "type": "string",
          "description": "User location"
        },
        "workScheduleId": {
          "$ref": "#/definitions/WorkScheduleId"
        },
        "id": {
          "$ref": "#/definitions/UserId"
        },
        "memberIds": {
          "type": "array",
          "description": "List of group members contact IDs (field is present only for groups)",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "primaryEmail": {
          "type": "string",
          "description": "Primary Email"
        }
      }
    },
    "WorkSchedule": {
      "type": "object",
      "properties": {
        "scheduleType": {
          "$ref": "#/definitions/WorkScheduleType"
        },
        "workweek": {
          "type": "array",
          "description": "Work week",
          "items": {
            "$ref": "#/definitions/WorkWeek"
          }
        },
        "userIds": {
          "type": "array",
          "description": "User ids assigned to schedule",
          "items": {
            "$ref": "#/definitions/UserId"
          }
        },
        "id": {
          "$ref": "#/definitions/WorkScheduleId"
        },
        "title": {
          "type": "string",
          "description": "Title"
        }
      }
    },
    "WorkScheduleException": {
      "type": "object",
      "properties": {
        "fromDate": {
          "type": "string",
          "description": ""
        },
        "isWorkDays": {
          "type": "boolean",
          "description": "True if this exception is for working days"
        },
        "toDate": {
          "type": "string",
          "description": ""
        },
        "exclusionType": {
          "$ref": "#/definitions/WorkScheduleExclusionType"
        },
        "id": {
          "$ref": "#/definitions/WorkScheduleExclusionId"
        }
      }
    },
    "PlaceholderId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "FolderProjectHistory": {
      "type": "object",
      "properties": {
        "plannedCost": {
          "type": "array",
          "description": "Planned cost change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "plannedFees": {
          "type": "array",
          "description": "Planned fees change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "actualFees": {
          "type": "array",
          "description": "Actual fees change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "actualCost": {
          "type": "array",
          "description": "Actual cost change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        },
        "budget": {
          "type": "array",
          "description": "Budget change history",
          "items": {
            "$ref": "#/definitions/BudgetMetricHistoryItem"
          }
        }
      }
    },
    "UserId": {
      "pattern": "^([A-Z0-9]){8}$",
      "type": "string"
    },
    "UserRole": {
      "type": "string",
      "enum": [
        "User",
        "Collaborator"
      ]
    },
    "DependencyRelationType": {
      "type": "string",
      "enum": [
        "FinishToFinish",
        "StartToStart",
        "StartToFinish",
        "FinishToStart"
      ]
    },
    "CustomField": {
      "required": [
        "id",
        "value"
      ],
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/CustomFieldId"
        },
        "value": {
          "type": "string",
          "description": "Custom field value. 4000 characters max. Should be valid string according to JSON RFC 8259. In particular, following characters must be escaped: quotation mark, reverse solidus, and the control characters (U+0000 through U+001F). Any character may be escaped, but unnecessarily escaped character can be implicitly translated to it's unescaped version. <br> In addition to RFC 8259 requirements, it is not recommended to use any of control characters in CF value.<br>Wrike's API forbids using U+0000 in every place and U+0011 at the beginning of the CF value string.<br>The correct way for setting multiple values in the multiple select Custom fields is ?customFields=[{\"id\":\"CustomFieldId\",\"value\":\"[\\\"value1\\\",\\\"value2\\\"]\"}]<br>The correct way for setting values in the people Custom fields is ?customFields=[{\"id\":\"CustomFieldId\",\"value\":\"UserId1, UserId2\"}]<br> Note that if custom field values are passed to API as URI param of request, they must be URI encoded. Here are some examples:<br>\"%5c\" - reverse solidus (backslash)<br>\"%5c%22\" - quotation mark<br>\"Vi%5Cu1ec7t\" - unicode-escaped character in word \"Việt\"<br>"
        }
      }
    },
    "ReviewId": {
      "pattern": "^([A-Z0-9]){16}$",
      "type": "string"
    },
    "AuditLogObjectType": {
      "type": "string",
      "enum": [
        "Account",
        "Group",
        "AnalyzeReportWidget",
        "Task",
        "User",
        "WorkspaceSnapshot",
        "CalendarExternalLink",
        "Attachment",
        "Folder",
        "DataExport",
        "PowerBIEntity",
        "Space",
        "Comment",
        "RequestForm",
        "AccessRole",
        "Timesheet",
        "Invitation",
        "Workflow",
        "AnalyzeReport",
        "Oauth2Client",
        "Project",
        "PublicLink",
        "UserRole",
        "CustomField",
        "UserType"
      ]
    },
    "FolderBlueprint": {
      "type": "object",
      "properties": {
        "childIds": {
          "type": "array",
          "description": "Child Blueprint IDs",
          "items": {
            "$ref": "#/definitions/FolderBlueprintId"
          }
        },
        "scope": {
          "$ref": "#/definitions/BlueprintTreeScope"
        },
        "id": {
          "$ref": "#/definitions/FolderBlueprintId"
        },
        "title": {
          "type": "string",
          "description": "Title"
        }
      }
    },
    "CustomItemType": {
      "type": "object",
      "properties": {
        "spaceId": {
          "$ref": "#/definitions/SpaceId"
        },
        "relatedType": {
          "$ref": "#/definitions/CustomItemTypeRelatedType"
        },
        "customFieldIds": {
          "type": "array",
          "description": "Custom fields that are available",
          "items": {
            "$ref": "#/definitions/CustomFieldId"
          }
        },
        "description": {
          "type": "string",
          "description": "Custom item type description"
        },
        "id": {
          "$ref": "#/definitions/EntityTypeId"
        },
        "title": {
          "type": "string",
          "description": "Work type Title"
        }
      }
    },
    "LocalDateRange": {
      "type": "object",
      "properties": {
        "equal": {
          "type": "string",
          "description": "Date exact match value"
        },
        "start": {
          "type": "string",
          "description": "Range start"
        },
        "end": {
          "type": "string",
          "description": "Range end"
        }
      }
    }
  },
  "securityDefinitions": {
    "api_key": {
      "type": "apiKey",
      "in": "header",
      "name": "Authorization"
    }
  },
  "x-components": {}
}
