{
  "consumes": [
    "application/json"
  ],
  "definitions": {
    "active.ProjectMetricActive": {
      "description": "ProjectMetricActive contains all the information returned from a active.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "title": "ProjectMetricActive",
      "type": "object"
    },
    "active.Response": {
      "description": "Response contains information about a specific active.",
      "properties": {
        "data": {
          "$ref": "#/definitions/active.ProjectMetricActive"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "activity.ActivitiesResponse": {
      "description": "ActivitiesResponse contains all the information returned when sending a GET\nrequest to the activity endpoint.",
      "properties": {
        "activities": {
          "items": {
            "$ref": "#/definitions/activity.Activity"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "ActivitiesResponse",
      "type": "object"
    },
    "activity.Activity": {
      "description": "Activity represents a view of activity.",
      "properties": {
        "activityType": {
          "type": "string"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "dateTime": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "dueDate": {
          "type": "string"
        },
        "extraDescription": {
          "type": "string"
        },
        "forUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "forUserId": {
          "type": "integer"
        },
        "forUserName": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isPrivate": {
          "type": "integer"
        },
        "item": {
          "$ref": "#/definitions/view.Relationship"
        },
        "itemId": {
          "type": "integer"
        },
        "itemLink": {
          "type": "string"
        },
        "latestActivityType": {
          "type": "string"
        },
        "link": {
          "type": "string"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "lockdownId": {
          "type": "integer"
        },
        "meta": {
          "type": "object"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "publicInfo": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Activity",
      "type": "object"
    },
    "attendee.CalendarAttendee": {
      "description": "CalendarAttendee contains all the information when modifying an attendee.\n\nCreate spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/2aa5c551c666e29d59dc39eb0981fec92cf373db/calendar.yaml#L615-L622",
      "properties": {
        "canEdit": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "reminders": {
          "$ref": "#/definitions/attendee.NullableCalendarAttendeeReminders"
        },
        "status": {
          "$ref": "#/definitions/payload.NullableCalendarAttendeeStatus"
        },
        "user": {
          "$ref": "#/definitions/calendar.User"
        }
      },
      "title": "CalendarAttendee",
      "type": "object"
    },
    "attendee.NullableCalendarAttendeeReminders": {
      "description": "NullableCalendarAttendeeReminders implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "items": {
            "$ref": "#/definitions/calendar.AttendeeReminder"
          },
          "type": "array"
        }
      },
      "title": "NullableCalendarAttendeeReminders",
      "type": "object"
    },
    "attendee.NullableCalendarAttendees": {
      "description": "NullableCalendarAttendees implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "items": {
            "$ref": "#/definitions/attendee.CalendarAttendee"
          },
          "type": "array"
        }
      },
      "title": "NullableCalendarAttendees",
      "type": "object"
    },
    "billable.ProjectMetricBillable": {
      "description": "ProjectMetricBillable contains all the information returned from a billable.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "title": "ProjectMetricBillable",
      "type": "object"
    },
    "billable.ProjectMetricBillablesResponse": {
      "description": "ProjectMetricBillablesResponse contains information about a group of billables.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/billable.ProjectMetricBillable"
          },
          "type": "array"
        }
      },
      "title": "ProjectMetricBillablesResponse",
      "type": "object"
    },
    "budgetreport.Response": {
      "description": "Response contains information about a group of budgets.",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/view.BudgetReportRow"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "taskListBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "type": "object"
            },
            "taskLists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "projectBudgets": {
          "items": {
            "$ref": "#/definitions/view.BudgetReportRow"
          },
          "type": "array"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.BudgetReportRow"
          },
          "type": "array"
        },
        "taskListBudgets": {
          "items": {
            "$ref": "#/definitions/view.BudgetReportRow"
          },
          "type": "array"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "calendar.AttendeeReminder": {
      "description": "AttendeeReminder is a reminder for a calendar attendee.",
      "properties": {
        "method": {
          "type": "string"
        },
        "minute": {
          "type": "integer"
        }
      },
      "title": "AttendeeReminder",
      "type": "object"
    },
    "calendar.Calendar": {
      "description": "Calendar contains all the information returned from a calendar.",
      "properties": {
        "name": {
          "type": "string"
        },
        "primary": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "type": {
          "$ref": "#/definitions/payload.NullableCalendarType"
        }
      },
      "title": "Calendar",
      "type": "object"
    },
    "calendar.CalendarsResponse": {
      "description": "CalendarsResponse contains information about a group of calendars.",
      "properties": {
        "calendars": {
          "items": {
            "$ref": "#/definitions/view.Calendar"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CalendarsResponse",
      "type": "object"
    },
    "calendar.Options": {
      "description": "Options are options for calendars",
      "properties": {
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "Options",
      "type": "object"
    },
    "calendar.Request": {
      "description": "Request contains information of a calendar to be created or updated.",
      "properties": {
        "calendar": {
          "$ref": "#/definitions/calendar.Calendar"
        },
        "calendarOptions": {
          "$ref": "#/definitions/calendar.Options"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "calendar.Response": {
      "description": "Response contains information about a specific calendar.",
      "properties": {
        "calendar": {
          "$ref": "#/definitions/view.Calendar"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "calendar.User": {
      "description": "User is a user in the calendar. It could be a Teamwork user or an external\nuser.",
      "properties": {
        "email": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        }
      },
      "title": "User",
      "type": "object"
    },
    "category.CategoriesResponse": {
      "description": "CategoriesResponse contains information about a group of categories.",
      "properties": {
        "projectCategories": {
          "items": {
            "$ref": "#/definitions/view.ProjectCategory"
          },
          "type": "array"
        },
        "projectCategoryTotals": {
          "$ref": "#/definitions/view.CategoryTotals"
        }
      },
      "title": "CategoriesResponse",
      "type": "object"
    },
    "comment.CommentsResponse": {
      "description": "CommentsResponse contains information about a group of comments.",
      "properties": {
        "comments": {
          "items": {
            "$ref": "#/definitions/comment.FullComment"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "files": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectFileV205"
              },
              "type": "object"
            },
            "fileversions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.FileversionV205"
              },
              "type": "object"
            },
            "links": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LinkItem"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "notebooks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Notebook"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CommentsResponse",
      "type": "object"
    },
    "comment.FullComment": {
      "description": "FullComment contains the full information for a comment",
      "properties": {
        "body": {
          "type": "string"
        },
        "commentLink": {
          "type": "string"
        },
        "contentType": {
          "type": "string"
        },
        "dateDeleted": {
          "type": "string"
        },
        "dateLastEdited": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserId": {
          "type": "integer"
        },
        "fileCount": {
          "type": "integer"
        },
        "fileIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "files": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "htmlBody": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "installation": {
          "$ref": "#/definitions/view.Relationship"
        },
        "installationId": {
          "type": "integer"
        },
        "isPrivate": {
          "type": "integer"
        },
        "lastEditedBy": {
          "type": "integer"
        },
        "lastEditedByUserId": {
          "type": "integer"
        },
        "lockdownID": {
          "type": "integer"
        },
        "meta": {
          "$ref": "#/definitions/comment.Meta"
        },
        "object": {
          "$ref": "#/definitions/view.Relationship"
        },
        "objectId": {
          "type": "integer"
        },
        "objectType": {
          "type": "string"
        },
        "peopleNotifiedCount": {
          "type": "integer"
        },
        "postedBy": {
          "type": "integer"
        },
        "postedByUserId": {
          "type": "integer"
        },
        "postedDateTime": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "reactions": {
          "items": {
            "$ref": "#/definitions/view.Reaction"
          },
          "type": "array"
        },
        "reactionsCount": {
          "type": "integer"
        }
      },
      "title": "FullComment",
      "type": "object"
    },
    "comment.Meta": {
      "description": "Meta contains metadata for a comment, such as permissions",
      "properties": {
        "isRead": {
          "type": "boolean"
        },
        "permissions": {
          "$ref": "#/definitions/comment.Permissions"
        }
      },
      "title": "Meta",
      "type": "object"
    },
    "comment.Permissions": {
      "description": "Permissions are the permissions the user has for the comment",
      "properties": {
        "canDelete": {
          "type": "boolean"
        },
        "canEdit": {
          "type": "boolean"
        }
      },
      "title": "Permissions",
      "type": "object"
    },
    "comment.Response": {
      "description": "Response contains information about a specific comment.",
      "properties": {
        "comments": {
          "$ref": "#/definitions/comment.FullComment"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "files": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectFileV205"
              },
              "type": "object"
            },
            "fileversions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.FileversionV205"
              },
              "type": "object"
            },
            "links": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LinkItem"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "notebooks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Notebook"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "company.ClientRatesRequest": {
      "description": "ClientRatesRequest represents a request to set client rates for a company.",
      "properties": {
        "clientRateByRoleId": {
          "additionalProperties": {
            "type": "number"
          },
          "description": "role ID -> amount",
          "type": "object"
        }
      },
      "title": "ClientRatesRequest",
      "type": "object"
    },
    "company.ClientRatesResponse": {
      "description": "ClientRatesResponse contains information about company client rates.",
      "properties": {
        "clientRateByRoleId": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ClientRate"
          },
          "type": "object"
        },
        "included": {
          "properties": {
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "ClientRatesResponse",
      "type": "object"
    },
    "company.CompaniesResponse": {
      "description": "CompaniesResponse contains information about a group of companies.",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/view.Company"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "countries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Country"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "customfieldCompanies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomFieldValueCompany"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "domains": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CompanyDomain"
              },
              "type": "object"
            },
            "industries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Industry"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "updates": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CompanyUpdate"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "letters": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CompaniesResponse",
      "type": "object"
    },
    "company.Company": {
      "description": "Company contains all the information returned from a company.",
      "properties": {
        "addressOne": {
          "type": "string"
        },
        "addressTwo": {
          "type": "string"
        },
        "cid": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "clientManagedBy": {
          "type": "integer"
        },
        "countrycode": {
          "type": "string"
        },
        "currencyId": {
          "type": "integer"
        },
        "customFields": {
          "$ref": "#/definitions/company.CustomFields"
        },
        "emailOne": {
          "type": "string"
        },
        "emailThree": {
          "type": "string"
        },
        "emailTwo": {
          "type": "string"
        },
        "fax": {
          "type": "string"
        },
        "industryCatId": {
          "type": "integer"
        },
        "logoPendingFileRef": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "privateNotes": {
          "type": "string"
        },
        "profile": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "website": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      },
      "title": "Company",
      "type": "object"
    },
    "company.CustomFields": {
      "description": "CustomFields is the custom fields type.",
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/value.CustomFieldValue"
          },
          "type": "array"
        }
      },
      "title": "CustomFields",
      "type": "object"
    },
    "company.Request": {
      "description": "Request contains information of a company to be created or updated.",
      "properties": {
        "company": {
          "$ref": "#/definitions/company.Company"
        },
        "companyOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/tag.Tag"
          },
          "type": "array"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "company.Response": {
      "description": "Response contains information about a specific company.",
      "properties": {
        "company": {
          "$ref": "#/definitions/view.Company"
        },
        "included": {
          "properties": {
            "countries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Country"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "customfieldCompanies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomFieldValueCompany"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "domains": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CompanyDomain"
              },
              "type": "object"
            },
            "industries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Industry"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "updates": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CompanyUpdate"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "companydomain.BulkRequest": {
      "description": "BulkRequest contains information of a company domains to be created.",
      "properties": {
        "companyDomains": {
          "items": {
            "$ref": "#/definitions/companydomain.Domain"
          },
          "type": "array"
        }
      },
      "title": "BulkRequest",
      "type": "object"
    },
    "companydomain.Domain": {
      "description": "Domain contains all the information returned from a domain.",
      "properties": {
        "companyId": {
          "type": "integer"
        },
        "domain": {
          "type": "string"
        }
      },
      "title": "Domain",
      "type": "object"
    },
    "companydomain.Request": {
      "description": "Request contains information of a company domains to be updated.",
      "properties": {
        "companyDomain": {
          "$ref": "#/definitions/companydomain.Domain"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "complete.Response": {
      "description": "Response contains information about a specific complete.",
      "properties": {
        "data": {
          "$ref": "#/definitions/complete.TaskMetricComplete"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "complete.TaskMetricComplete": {
      "description": "TaskMetricComplete contains all the information returned from a complete.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "title": "TaskMetricComplete",
      "type": "object"
    },
    "container.Binding": {
      "description": "Binding holds entity binding information for a container permissions payload.",
      "properties": {
        "entity": {
          "type": "string"
        },
        "entityId": {
          "type": "integer"
        }
      },
      "title": "Binding",
      "type": "object"
    },
    "container.Container": {
      "description": "Container contains all the information returned from a container.",
      "properties": {
        "appRoute": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isVisible": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "ownerId": {
          "type": "integer"
        },
        "permissions": {
          "$ref": "#/definitions/container.Permissions"
        },
        "type": {
          "type": "string"
        },
        "widgets": {
          "items": {
            "$ref": "#/definitions/containerwidget.Widget"
          },
          "type": "array"
        }
      },
      "title": "Container",
      "type": "object"
    },
    "container.ContainersResponse": {
      "description": "ContainersResponse contains information about a group of containers.",
      "properties": {
        "containers": {
          "items": {
            "$ref": "#/definitions/view.Container"
          },
          "type": "array"
        },
        "included": {
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "ContainersResponse",
      "type": "object"
    },
    "container.DashboardDataResponse": {
      "description": "DashboardDataResponse contains information for a specific chart.",
      "properties": {
        "data": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workflowStages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "DashboardDataResponse",
      "type": "object"
    },
    "container.EstimationDetailRow": {
      "description": "EstimationDetailRow is a single estimation detail row.",
      "properties": {
        "assignees": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "completedDate": {
          "type": "string"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "estimationAccuracy": {
          "type": "number"
        },
        "loggedTime": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskId": {
          "type": "integer"
        },
        "taskStatus": {
          "type": "string"
        }
      },
      "title": "EstimationDetailRow",
      "type": "object"
    },
    "container.EstimationDetailsResponse": {
      "description": "EstimationDetailsResponse is the response for estimation details endpoint.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/container.EstimationDetailRow"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "EstimationDetailsResponse",
      "type": "object"
    },
    "container.EstimationTotalsResponse": {
      "description": "EstimationTotalsResponse is the response for estimation totals endpoint.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "estimationAccuracy": {
          "type": "number"
        },
        "loggedTime": {
          "type": "integer"
        },
        "noEstimation": {
          "type": "integer"
        },
        "overestimatedCount": {
          "type": "integer"
        },
        "underestimatedCount": {
          "type": "integer"
        },
        "withinMargins": {
          "type": "integer"
        }
      },
      "title": "EstimationTotalsResponse",
      "type": "object"
    },
    "container.Permissions": {
      "description": "Permissions holds permission context for a container in POST/PATCH payloads.",
      "properties": {
        "binding": {
          "$ref": "#/definitions/container.Binding"
        }
      },
      "title": "Permissions",
      "type": "object"
    },
    "container.Request": {
      "description": "Request contains information of a container to be created or updated.",
      "properties": {
        "container": {
          "$ref": "#/definitions/container.Container"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "container.Response": {
      "description": "Response contains information about a specific container.",
      "properties": {
        "container": {
          "$ref": "#/definitions/view.Container"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "containerwidget.Widget": {
      "description": "Widget contains all the information returned from a widget.",
      "properties": {
        "config": {
          "type": "any"
        },
        "containerId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "height": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "posX": {
          "type": "integer"
        },
        "posY": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "width": {
          "type": "integer"
        }
      },
      "title": "Widget",
      "type": "object"
    },
    "customfield.BulkDeleteRequest": {
      "description": "BulkDeleteRequest contains the ids of the custom fields that should be\nremoved.",
      "properties": {
        "customfieldIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "customfield.CustomField": {
      "description": "CustomField contains all the information returned from a custom field.",
      "properties": {
        "currencyCode": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "entity": {
          "enum": [
            "project",
            "task",
            "company",
            "cr-project",
            "cr-task"
          ],
          "type": "string"
        },
        "formula": {
          "type": "string"
        },
        "groupId": {
          "type": "integer"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "options": {
          "type": "any"
        },
        "privacy": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "projectId": {
          "type": "integer"
        },
        "required": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "unitId": {
          "type": "integer"
        },
        "visibilities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "title": "CustomField",
      "type": "object"
    },
    "customfield.CustomFieldsResponse": {
      "description": "CustomFieldsResponse contains information about a group of custom fields.",
      "properties": {
        "customfields": {
          "items": {
            "$ref": "#/definitions/view.CustomField"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CustomFieldsResponse",
      "type": "object"
    },
    "customfield.Request": {
      "description": "Request contains information of a custom field to be created or updated.",
      "properties": {
        "customfield": {
          "$ref": "#/definitions/customfield.CustomField"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "customfield.Response": {
      "description": "Response contains information about a specific customfield.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "customfield": {
          "$ref": "#/definitions/view.CustomField"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "customfield.ValidateFormulaResponse": {
      "description": "ValidateFormulaResponse contains information about formula validation.",
      "properties": {
        "ExpectedType": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        }
      },
      "title": "ValidateFormulaResponse",
      "type": "object"
    },
    "customitem.CustomItem": {
      "description": "CustomItem contains all the information returned from a customitem.",
      "properties": {
        "definition": {
          "type": "object"
        },
        "description": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "labelPlural": {
          "type": "string"
        },
        "labelSingular": {
          "type": "string"
        }
      },
      "title": "CustomItem",
      "type": "object"
    },
    "customitem.CustomItemsResponse": {
      "description": "CustomItemsResponse contains information about a group of customitems.",
      "properties": {
        "customItems": {
          "items": {
            "$ref": "#/definitions/view.CustomItem"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "customItemFields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemField"
              },
              "type": "object"
            },
            "customItemSections": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemSection"
              },
              "type": "object"
            },
            "customItemViews": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemView"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CustomItemsResponse",
      "type": "object"
    },
    "customitem.Request": {
      "description": "Request contains information of a customitem to be created or updated.",
      "properties": {
        "customItem": {
          "$ref": "#/definitions/customitem.CustomItem"
        },
        "customItemOptions": {
          "properties": {
            "applyDefaultConfiguration": {
              "type": "boolean"
            },
            "fireWebhook": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "customitem.Response": {
      "description": "Response contains information about a specific customitem.",
      "properties": {
        "customItem": {
          "$ref": "#/definitions/view.CustomItem"
        },
        "included": {
          "properties": {
            "customItemFields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemField"
              },
              "type": "object"
            },
            "customItemSections": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemSection"
              },
              "type": "object"
            },
            "customItemViews": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemView"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "dashboard.UserDashboardsResponse": {
      "description": "UserDashboardsResponse contains information about a group of dashboards.",
      "properties": {
        "dashboards": {
          "items": {
            "$ref": "#/definitions/view.UserDashboard"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "dashboardPanelSettings": {
              "additionalProperties": {
                "$ref": "#/definitions/view.UserDashboardPanelSetting"
              },
              "type": "object"
            },
            "dashboardPanels": {
              "additionalProperties": {
                "$ref": "#/definitions/view.UserDashboardPanel"
              },
              "type": "object"
            },
            "dashboardSettings": {
              "additionalProperties": {
                "$ref": "#/definitions/view.UserDashboardSetting"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "UserDashboardsResponse",
      "type": "object"
    },
    "deadline.MilestoneMetricDeadline": {
      "description": "MilestoneMetricDeadline contains all the information returned from a deadline.",
      "properties": {
        "date": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "title": "MilestoneMetricDeadline",
      "type": "object"
    },
    "deadline.MilestoneMetricDeadlinesResponse": {
      "description": "MilestoneMetricDeadlinesResponse contains information about a group of deadlines.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/deadline.MilestoneMetricDeadline"
          },
          "type": "array"
        }
      },
      "title": "MilestoneMetricDeadlinesResponse",
      "type": "object"
    },
    "domain.BulkResponse": {
      "description": "BulkResponse contains information about a group of domains.",
      "properties": {
        "domains": {
          "items": {
            "$ref": "#/definitions/view.CompanyDomain"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "BulkResponse",
      "type": "object"
    },
    "domain.Response": {
      "description": "Response contains information about a specific domain.",
      "properties": {
        "domain": {
          "$ref": "#/definitions/view.CompanyDomain"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "entity.MonthDate": {
      "description": "MonthDate holds a year and month (1-12).",
      "properties": {
        "Month": {
          "type": "integer"
        },
        "Year": {
          "type": "integer"
        }
      },
      "title": "MonthDate",
      "type": "object"
    },
    "entity.ProjectBudgetRange": {
      "description": "ProjectBudgetRange is a distribution item type.\nFrom and To are percentage ranges",
      "properties": {
        "color": {
          "description": "Color is used to render background in report exports",
          "type": "string"
        },
        "companyId": {
          "type": "integer"
        },
        "count": {
          "type": "integer"
        },
        "from": {
          "type": "integer"
        },
        "to": {
          "type": "integer"
        }
      },
      "title": "ProjectBudgetRange",
      "type": "object"
    },
    "entity.Timeblock": {
      "description": "Timeblock represents a timeblock that can be later converted to a timelog",
      "properties": {
        "ProjectID": {
          "type": "integer"
        },
        "TaskID": {
          "type": "integer"
        },
        "TimelogID": {
          "type": "integer"
        }
      },
      "title": "Timeblock",
      "type": "object"
    },
    "entity.WeekDate": {
      "description": "WeekDate holds information from a ISO-8601 week",
      "properties": {
        "Week": {
          "type": "integer"
        },
        "Year": {
          "type": "integer"
        }
      },
      "title": "WeekDate",
      "type": "object"
    },
    "event.CalendarEvent": {
      "description": "CalendarEvent contains all the information when modifying an event.\n\nCreate spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/6eabeaeb7d3a0c5eaf6ef38a1541c07286f26cee/calendar.yaml#L422-L542\n\nUpdate spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/6eabeaeb7d3a0c5eaf6ef38a1541c07286f26cee/calendar.yaml#L543-L643",
      "properties": {
        "allDay": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "attendees": {
          "$ref": "#/definitions/attendee.NullableCalendarAttendees"
        },
        "attendeesOmitted": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "calOwnerCanEdit": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "calendarId": {
          "type": "integer"
        },
        "color": {
          "$ref": "#/definitions/payload.NullableHexColor"
        },
        "description": {
          "type": "string"
        },
        "end": {
          "$ref": "#/definitions/event.CalendarEventDate"
        },
        "eventCreator": {
          "$ref": "#/definitions/calendar.User"
        },
        "exDate": {
          "type": "string"
        },
        "guestsCanInviteOthers": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "guestsCanModify": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "guestsCanSeeOtherGuests": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "htmlLink": {
          "type": "string"
        },
        "iCalUID": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "organizer": {
          "$ref": "#/definitions/calendar.User"
        },
        "recurrence": {
          "type": "string"
        },
        "recurringEventId": {
          "type": "integer"
        },
        "start": {
          "$ref": "#/definitions/event.CalendarEventDate"
        },
        "status": {
          "$ref": "#/definitions/payload.NullableCalendarEventStatus"
        },
        "summary": {
          "type": "string"
        },
        "timeblock": {
          "$ref": "#/definitions/payload.NullableCalendarEventTimeblock"
        },
        "transparency": {
          "$ref": "#/definitions/payload.NullableCalendarEventTransparency"
        },
        "type": {
          "$ref": "#/definitions/payload.NullableCalendarEventType"
        },
        "videoCallLink": {
          "type": "string"
        },
        "visibility": {
          "$ref": "#/definitions/payload.NullableCalendarEventVisibility"
        }
      },
      "title": "CalendarEvent",
      "type": "object"
    },
    "event.CalendarEventDate": {
      "description": "CalendarEventDate stores information about a date of an event.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "title": "CalendarEventDate",
      "type": "object"
    },
    "event.CalendarEventsResponse": {
      "description": "CalendarEventsResponse contains information about a group of events.",
      "properties": {
        "events": {
          "items": {
            "$ref": "#/definitions/view.CalendarEvent"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "calendars": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Calendar"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "masterInstances": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CalendarEvent"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "timelogs": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Timelog"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CalendarEventsResponse",
      "type": "object"
    },
    "event.Request": {
      "description": "Request contains information of a event to be created or updated.",
      "properties": {
        "event": {
          "$ref": "#/definitions/event.CalendarEvent"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "event.Response": {
      "description": "Response contains information about a specific event.",
      "properties": {
        "event": {
          "$ref": "#/definitions/view.CalendarEvent"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "timelogs": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Timelog"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "event.taskFromEventResponse": {
      "properties": {
        "taskId": {
          "type": "integer"
        }
      },
      "title": "taskFromEventResponse",
      "type": "object"
    },
    "exchangerate.ExchangeRate": {
      "description": "ExchangeRate represents a single exchange rate.",
      "properties": {
        "date": {
          "$ref": "#/definitions/timeutil.Date"
        },
        "fromCurrency": {
          "type": "string"
        },
        "rate": {
          "type": "number"
        },
        "toCurrency": {
          "type": "string"
        }
      },
      "title": "ExchangeRate",
      "type": "object"
    },
    "exchangerate.ExchangeRatesResponse": {
      "description": "ExchangeRatesResponse contains all exchange rates for a base currency.",
      "properties": {
        "baseCurrency": {
          "type": "string"
        },
        "rates": {
          "items": {
            "$ref": "#/definitions/exchangerate.ExchangeRate"
          },
          "type": "array"
        }
      },
      "title": "ExchangeRatesResponse",
      "type": "object"
    },
    "field.CustomItemField": {
      "description": "CustomItemField contains all the information returned from a field.",
      "properties": {
        "definition": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "options": {
          "items": {
            "$ref": "#/definitions/field.CustomItemFieldOption"
          },
          "type": "array"
        },
        "positionAfterId": {
          "type": "integer"
        },
        "twType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "CustomItemField",
      "type": "object"
    },
    "field.CustomItemFieldOption": {
      "description": "CustomItemFieldOption contains all the information returned from a field option.",
      "properties": {
        "color": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "positionAfterId": {
          "type": "integer"
        }
      },
      "title": "CustomItemFieldOption",
      "type": "object"
    },
    "field.CustomItemFieldsResponse": {
      "description": "CustomItemFieldsResponse contains information about a group of custom item fields.",
      "properties": {
        "customItemFields": {
          "items": {
            "$ref": "#/definitions/view.CustomItemField"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CustomItemFieldsResponse",
      "type": "object"
    },
    "field.Request": {
      "description": "Request contains information of a field to be created or updated.",
      "properties": {
        "customItemField": {
          "$ref": "#/definitions/field.CustomItemField"
        },
        "customItemFieldOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "field.Response": {
      "description": "Response contains information about a specific custom item field.",
      "properties": {
        "customItemField": {
          "$ref": "#/definitions/view.CustomItemField"
        },
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "form.Banner": {
      "description": "Banner contains information of a form banner to be created or updated.",
      "properties": {
        "primaryColor": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        }
      },
      "title": "Banner",
      "type": "object"
    },
    "form.Content": {
      "description": "Content contains information of a form content to be created or updated.",
      "properties": {
        "banner": {
          "$ref": "#/definitions/form.Banner"
        },
        "definition": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "logo": {
          "$ref": "#/definitions/form.Logo"
        },
        "name": {
          "type": "string"
        },
        "pendingBannerId": {
          "type": "string"
        },
        "pendingLogoId": {
          "type": "string"
        },
        "state": {
          "type": "string"
        }
      },
      "title": "Content",
      "type": "object"
    },
    "form.CopyForm": {
      "description": "CopyForm contains information on where and what to copy from a form",
      "properties": {
        "copyAssignees": {
          "type": "boolean"
        },
        "generateToken": {
          "type": "boolean"
        },
        "hostObject": {
          "$ref": "#/definitions/form.HostObject"
        },
        "projectIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        }
      },
      "title": "CopyForm",
      "type": "object"
    },
    "form.CopyRequest": {
      "description": "CopyRequest outter request for copying a form",
      "properties": {
        "form": {
          "$ref": "#/definitions/form.CopyForm"
        }
      },
      "title": "CopyRequest",
      "type": "object"
    },
    "form.DestinationObject": {
      "description": "DestinationObject contains information of a form destination object to be created or updated.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "DestinationObject",
      "type": "object"
    },
    "form.Form": {
      "description": "Form contains information of a form to be created or updated.",
      "properties": {
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/form.Content"
        },
        "createFormTask": {
          "type": "boolean"
        },
        "destinationObject": {
          "$ref": "#/definitions/form.DestinationObject"
        },
        "hostObject": {
          "$ref": "#/definitions/form.HostObject"
        },
        "notifyTaskAssignees": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "responseEmailFieldId": {
          "type": "string"
        },
        "showProgressBar": {
          "type": "boolean"
        },
        "submitButtonText": {
          "type": "string"
        },
        "taskTitleFieldId": {
          "type": "string"
        }
      },
      "title": "Form",
      "type": "object"
    },
    "form.FormsResponse": {
      "description": "FormsResponse contains information about a group of forms.",
      "properties": {
        "forms": {
          "items": {
            "$ref": "#/definitions/view.Form"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "FormsResponse",
      "type": "object"
    },
    "form.HostObject": {
      "description": "HostObject contains information of a form host object to be created or updated.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "meta": {
          "$ref": "#/definitions/form.HostObjectMeta"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "HostObject",
      "type": "object"
    },
    "form.HostObjectMeta": {
      "description": "HostObjectMeta contains information of a form host object meta to be created or updated.",
      "properties": {
        "tasklistId": {
          "type": "integer"
        }
      },
      "title": "HostObjectMeta",
      "type": "object"
    },
    "form.Logo": {
      "description": "Logo contains information of a form custom logo to be created or updated.",
      "properties": {
        "url": {
          "type": "string"
        }
      },
      "title": "Logo",
      "type": "object"
    },
    "form.PublicResponse": {
      "description": "PublicResponse contains information about a specific public form.",
      "properties": {
        "form": {
          "$ref": "#/definitions/view.PublicForm"
        }
      },
      "title": "PublicResponse",
      "type": "object"
    },
    "form.Request": {
      "description": "Request contains information of a form to be created or updated.",
      "properties": {
        "form": {
          "$ref": "#/definitions/form.Form"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "form.Response": {
      "description": "Response contains information about a specific form.",
      "properties": {
        "form": {
          "$ref": "#/definitions/view.Form"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "health.HealthScore": {
      "description": "HealthScore represents a single project's health score.",
      "properties": {
        "indicators": {
          "items": {
            "$ref": "#/definitions/healthscore.HealthScoreIndicator"
          },
          "type": "array"
        },
        "projectId": {
          "type": "integer"
        },
        "score": {
          "type": "integer"
        }
      },
      "title": "HealthScore",
      "type": "object"
    },
    "health.HealthScoresResponse": {
      "description": "HealthScoresResponse contains an array of health scores.",
      "properties": {
        "healthScores": {
          "items": {
            "$ref": "#/definitions/health.HealthScore"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/health.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "HealthScoresResponse",
      "type": "object"
    },
    "health.Included": {
      "description": "Included contains sideloaded resources for health scores.",
      "properties": {
        "projects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.IncludedProject"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "health.ProjectMetricHealth": {
      "description": "ProjectMetricHealth stores a specific health counter.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "title": "ProjectMetricHealth",
      "type": "object"
    },
    "health.ProjectMetricHealthsResponse": {
      "description": "ProjectMetricHealthsResponse contains information about a group of healths.\nFollowing this format to satisfy the Numerics integration.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/health.ProjectMetricHealth"
          },
          "type": "array"
        }
      },
      "title": "ProjectMetricHealthsResponse",
      "type": "object"
    },
    "healthscore.HealthScoreIndicator": {
      "description": "HealthScoreIndicator represents a single indicator that contributes to the\noverall health score.",
      "properties": {
        "description": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "penalty": {
          "type": "number"
        },
        "taskId": {
          "type": "integer"
        },
        "weight": {
          "type": "number"
        }
      },
      "title": "HealthScoreIndicator",
      "type": "object"
    },
    "importer.Importer": {
      "description": "Importer single importer for response.",
      "properties": {
        "name": {
          "type": "string"
        },
        "running": {
          "type": "boolean"
        },
        "status": {
          "type": "string"
        }
      },
      "title": "Importer",
      "type": "object"
    },
    "importer.ImportersResponse": {
      "description": "ImportersResponse contains information about a group of importers.",
      "properties": {
        "importers": {
          "items": {
            "$ref": "#/definitions/importer.Importer"
          },
          "type": "array"
        },
        "isImporting": {
          "type": "boolean"
        }
      },
      "title": "ImportersResponse",
      "type": "object"
    },
    "invoice.ProjectMetricInvoicesResponse": {
      "description": "ProjectMetricInvoicesResponse contains information about a group of invoices.",
      "properties": {
        "data": {
          "properties": {
            "value": {
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "title": "ProjectMetricInvoicesResponse",
      "type": "object"
    },
    "jobrole.BillableRate": {
      "description": "BillableRate contains the rate amount and from date.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "BillableRate",
      "type": "object"
    },
    "jobrole.BillableRateAmount": {
      "description": "BillableRateAmount represents the amount for a specific currency.",
      "properties": {
        "amount": {
          "type": "number"
        }
      },
      "title": "BillableRateAmount",
      "type": "object"
    },
    "jobrole.BillableRatesRequest": {
      "description": "BillableRatesRequest represents a request to set billable rates for a job role.",
      "properties": {
        "billableRatesByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.BillableRateAmount"
          },
          "type": "object"
        }
      },
      "title": "BillableRatesRequest",
      "type": "object"
    },
    "jobrole.CostRateAmount": {
      "description": "CostRateAmount represents the amount for a specific currency.",
      "properties": {
        "amount": {
          "type": "number"
        }
      },
      "title": "CostRateAmount",
      "type": "object"
    },
    "jobrole.CostRatesRequest": {
      "description": "CostRatesRequest represents a request to set cost rates for a job role.",
      "properties": {
        "costRateByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.CostRateAmount"
          },
          "type": "object"
        }
      },
      "title": "CostRatesRequest",
      "type": "object"
    },
    "jobrole.JobRole": {
      "description": "JobRole contains all the information returned from a job role.",
      "properties": {
        "billableRatesByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.BillableRateAmount"
          },
          "type": "object"
        },
        "costRatesByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.CostRateAmount"
          },
          "type": "object"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "JobRole",
      "type": "object"
    },
    "jobrole.JobRoleCostRatesResponse": {
      "description": "JobRoleCostRatesResponse contains the response for cost rates.",
      "properties": {
        "costRateByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.RoleCostRate"
          },
          "type": "object"
        },
        "included": {
          "properties": {
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "JobRoleCostRatesResponse",
      "type": "object"
    },
    "jobrole.JobRoleRatesResponse": {
      "description": "JobRoleRatesResponse contains information about job role billable rates.",
      "properties": {
        "billableRateByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/jobrole.BillableRate"
          },
          "type": "object"
        },
        "included": {
          "properties": {
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "JobRoleRatesResponse",
      "type": "object"
    },
    "jobrole.JobRolesResponse": {
      "description": "JobRolesResponse contains information about a group of job roles.",
      "properties": {
        "included": {
          "properties": {
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "jobRoles": {
          "items": {
            "$ref": "#/definitions/view.JobRole"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "JobRolesResponse",
      "type": "object"
    },
    "jobrole.Request": {
      "description": "Request contains information of a job role to be created or updated.",
      "properties": {
        "jobRole": {
          "$ref": "#/definitions/jobrole.JobRole"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "jobrole.Response": {
      "description": "Response contains information about a specific job role.",
      "properties": {
        "included": {
          "properties": {
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "jobRole": {
          "$ref": "#/definitions/view.JobRole"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "jobrole.RoleCostRate": {
      "description": "RoleCostRate contains the role cost rate amount.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUserId": {
          "type": "integer"
        }
      },
      "title": "RoleCostRate",
      "type": "object"
    },
    "jobrole.UsersRequest": {
      "description": "UsersRequest represents a request with users to be assigned or unassigned.",
      "properties": {
        "isPrimary": {
          "type": "boolean"
        },
        "users": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "UsersRequest",
      "type": "object"
    },
    "late.Response": {
      "description": "Response contains the count of late tasks.\nFollowing this format to satisfy the Numerics integration.",
      "properties": {
        "data": {
          "$ref": "#/definitions/late.TaskMetricLate"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "late.TaskMetricLate": {
      "description": "TaskMetricLate contains count information about late tasks.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "title": "TaskMetricLate",
      "type": "object"
    },
    "me.Response": {
      "description": "Response contains information about me.",
      "properties": {
        "person": {
          "$ref": "#/definitions/view.UserMe"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "message.MessagesResponse": {
      "description": "MessagesResponse contains all the information returned when sending a GET\nrequest to the message endpoint.",
      "properties": {
        "included": {
          "properties": {
            "Included": {
              "$ref": "#/definitions/messagereply.Included"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "messageReplies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.MessageReply"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "messages": {
          "items": {
            "$ref": "#/definitions/view.Message"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "MessagesResponse",
      "type": "object"
    },
    "message.Request": {
      "description": "Request contains information of a message to be created or updated.",
      "properties": {
        "read": {
          "type": "boolean"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "message.Response": {
      "description": "Response contains information about a specific message.",
      "properties": {
        "included": {
          "properties": {
            "Included": {
              "$ref": "#/definitions/messagereply.Included"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "messageReplies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.MessageReply"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "message": {
          "$ref": "#/definitions/view.Message"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "messagereply.Included": {
      "description": "Included contains sideloadable stuff for message replies.",
      "properties": {
        "messages": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Message"
          },
          "type": "object"
        },
        "tags": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Tag"
          },
          "type": "object"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "messagereply.MessageRepliesResponse": {
      "description": "MessageRepliesResponse contains information about a group of message replies.",
      "properties": {
        "included": {
          "$ref": "#/definitions/messagereply.Included"
        },
        "messageReplies": {
          "items": {
            "$ref": "#/definitions/view.MessageReply"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "MessageRepliesResponse",
      "type": "object"
    },
    "messagereply.Response": {
      "description": "Response contains information about a specific message reply.",
      "properties": {
        "included": {
          "$ref": "#/definitions/messagereply.Included"
        },
        "messageReply": {
          "$ref": "#/definitions/view.MessageReply"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "milestone.MilestoneDetailsResponse": {
      "description": "MilestoneDetailsResponse contains milestone rows with included entities.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "milestones": {
          "items": {
            "$ref": "#/definitions/view.Milestone"
          },
          "type": "array"
        }
      },
      "title": "MilestoneDetailsResponse",
      "type": "object"
    },
    "milestone.MilestonesResponse": {
      "description": "MilestonesResponse contains information about a group of milestones.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "milestones": {
          "items": {
            "$ref": "#/definitions/view.Milestone"
          },
          "type": "array"
        }
      },
      "title": "MilestonesResponse",
      "type": "object"
    },
    "milestone.Response": {
      "description": "Response contains information about a milestone.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "milestone": {
          "$ref": "#/definitions/view.Milestone"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "notebook.Notebook": {
      "description": "Notebook contains all the information returned from a notebook.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "contents": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "isFullWidth": {
          "type": "boolean"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "locked": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "newVersion": {
          "type": "boolean"
        },
        "notify": {
          "$ref": "#/definitions/payload.Notify"
        },
        "notifyCurrentUser": {
          "type": "boolean"
        },
        "privacy": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "secureContent": {
          "type": "boolean"
        },
        "sendDiff": {
          "type": "boolean"
        },
        "tagIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "Notebook",
      "type": "object"
    },
    "notebook.NotebooksResponse": {
      "description": "NotebooksResponse contains information about a group of notebooks.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "notebookCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.NotebookCategory"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "notebooks": {
          "items": {
            "$ref": "#/definitions/view.Notebook"
          },
          "type": "array"
        }
      },
      "title": "NotebooksResponse",
      "type": "object"
    },
    "notebook.Request": {
      "description": "Request contains information of a notebook to be created or updated.",
      "properties": {
        "notebook": {
          "$ref": "#/definitions/notebook.Notebook"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "notebook.Response": {
      "description": "Response contains information about a specific notebook.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "notebookCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.NotebookCategory"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "notebook": {
          "$ref": "#/definitions/view.Notebook"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "notebook.VersionResponse": {
      "description": "VersionResponse contains information about a specifc notebook version",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "version": {
          "$ref": "#/definitions/view.NotebookVersion"
        }
      },
      "title": "VersionResponse",
      "type": "object"
    },
    "notebook.VersionsResponse": {
      "description": "VersionsResponse contains information about a group of notebook versions",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "versions": {
          "items": {
            "$ref": "#/definitions/view.NotebookVersion"
          },
          "type": "array"
        }
      },
      "title": "VersionsResponse",
      "type": "object"
    },
    "notification.ProjectBudgetNotification": {
      "description": "ProjectBudgetNotification contains all the information returned from a notification.",
      "properties": {
        "budgetId": {
          "type": "integer"
        },
        "capacityThreshold": {
          "type": "number"
        },
        "companyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "notificationMedium": {
          "type": "string"
        },
        "projectId": {
          "type": "integer"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "ProjectBudgetNotification",
      "type": "object"
    },
    "notification.ProjectBudgetRequest": {
      "description": "ProjectBudgetRequest contains information of a notification to be created or updated.",
      "properties": {
        "notification": {
          "$ref": "#/definitions/notification.ProjectBudgetNotification"
        }
      },
      "title": "ProjectBudgetRequest",
      "type": "object"
    },
    "notification.Response": {
      "description": "Response contains information about a specific notification.",
      "properties": {
        "notification": {
          "$ref": "#/definitions/view.Notification"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "owner.ProjectMetricOwner": {
      "description": "ProjectMetricOwner contains information about a specific owner.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "title": "ProjectMetricOwner",
      "type": "object"
    },
    "owner.ProjectMetricOwnersResponse": {
      "description": "ProjectMetricOwnersResponse contains information about a group of owners.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/owner.ProjectMetricOwner"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "ProjectMetricOwnersResponse",
      "type": "object"
    },
    "payload.Notify": {
      "description": "Notify defines the access lists.",
      "properties": {
        "ids": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "type": {
          "$ref": "#/definitions/payload.NotifyType"
        }
      },
      "title": "Notify",
      "type": "object"
    },
    "payload.NotifyType": {
      "description": "NotifyType implements json.Unmarshaler to allow testing between a value\nthat explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NotifyType",
      "type": "object"
    },
    "payload.NullableBool": {
      "description": "NullableBool implements json.Unmarshaler to allow testing between a value\nthat explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "boolean"
        }
      },
      "title": "NullableBool",
      "type": "object"
    },
    "payload.NullableCalendarAttendeeStatus": {
      "description": "NullableCalendarAttendeeStatus implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarAttendeeStatus",
      "type": "object"
    },
    "payload.NullableCalendarEventStatus": {
      "description": "NullableCalendarEventStatus implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarEventStatus",
      "type": "object"
    },
    "payload.NullableCalendarEventTimeblock": {
      "description": "NullableCalendarEventTimeblock implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "$ref": "#/definitions/entity.Timeblock"
        }
      },
      "title": "NullableCalendarEventTimeblock",
      "type": "object"
    },
    "payload.NullableCalendarEventTransparency": {
      "description": "NullableCalendarEventTransparency implements json.Unmarshaler to allow\ntesting between a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarEventTransparency",
      "type": "object"
    },
    "payload.NullableCalendarEventType": {
      "description": "NullableCalendarEventType implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarEventType",
      "type": "object"
    },
    "payload.NullableCalendarEventVisibility": {
      "description": "NullableCalendarEventVisibility implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarEventVisibility",
      "type": "object"
    },
    "payload.NullableCalendarType": {
      "description": "NullableCalendarType implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableCalendarType",
      "type": "object"
    },
    "payload.NullableDate": {
      "description": "NullableDate implements json.Unmarshaler to allow testing between a value\nthat explicitly set to null or omitted.\nDate format \"2006-01-02\"",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "format": "date",
          "type": "string"
        }
      },
      "title": "NullableDate",
      "type": "object"
    },
    "payload.NullableHexColor": {
      "description": "NullableHexColor implements json.Unmarshaler to allow testing between a value\nthat explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableHexColor",
      "type": "object"
    },
    "payload.NullableInt64Slice": {
      "description": "NullableInt64Slice implements json.Unmarshaler to allow testing between a\nvalue that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "NullableInt64Slice",
      "type": "object"
    },
    "payload.NullableTaskPriority": {
      "description": "NullableTaskPriority implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableTaskPriority",
      "type": "object"
    },
    "payload.NullableTaskRepeatFrequency": {
      "description": "NullableTaskRepeatFrequency implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableTaskRepeatFrequency",
      "type": "object"
    },
    "payload.NullableTaskRepeatMonthlyType": {
      "description": "NullableTaskRepeatMonthlyType implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "type": "string"
        }
      },
      "title": "NullableTaskRepeatMonthlyType",
      "type": "object"
    },
    "payload.NullableWorkingHourEntryWeekdays": {
      "description": "NullableWorkingHourEntryWeekdays implements json.Unmarshaler to allow testing\nbetween a value that explicitly set to null or omitted.",
      "properties": {
        "Null": {
          "type": "boolean"
        },
        "Set": {
          "type": "boolean"
        },
        "Value": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "title": "NullableWorkingHourEntryWeekdays",
      "type": "object"
    },
    "payload.Time": {
      "description": "Time unmarshals represents a Unified API Spec date format.",
      "title": "Time",
      "type": "object"
    },
    "payload.UserGroups": {
      "description": "UserGroups are common lists for storing users, companies, teams and jobRole ids\ntogether.",
      "properties": {
        "companyIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        },
        "jobRoleIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        },
        "teamIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        },
        "userIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        }
      },
      "title": "UserGroups",
      "type": "object"
    },
    "people.AddPeopleToProjectResponse": {
      "description": "AddPeopleToProjectResponse contains information about which users were and weren't add to the project as well\nas why the users were not able to be added",
      "properties": {
        "info": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "usersAdded": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "usersAlreadyInProject": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "usersNotAdded": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "AddPeopleToProjectResponse",
      "type": "object"
    },
    "people.MultiResponse": {
      "description": "MultiResponse contains information about a group of users.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "skills": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Skill"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "userIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "workingHours": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHour"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "people": {
          "items": {
            "$ref": "#/definitions/view.User"
          },
          "type": "array"
        }
      },
      "title": "MultiResponse",
      "type": "object"
    },
    "people.Response": {
      "description": "Response contains information about a user.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "skills": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Skill"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "userIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "workingHours": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHour"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "person": {
          "$ref": "#/definitions/view.User"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "people.TaskCompletion": {
      "description": "TaskCompletion contains information about tasks completed by a user.",
      "properties": {
        "activeProjects": {
          "type": "integer"
        },
        "assignedTasks": {
          "type": "integer"
        },
        "completedTasks": {
          "type": "integer"
        },
        "overdueTasks": {
          "type": "integer"
        },
        "projects": {
          "type": "integer"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "TaskCompletion",
      "type": "object"
    },
    "people.TaskCompletionResponse": {
      "description": "TaskCompletionResponse contains information about tasks completed by a user.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "taskCompletions": {
          "$ref": "#/definitions/people.TaskCompletions"
        }
      },
      "title": "TaskCompletionResponse",
      "type": "object"
    },
    "people.TaskCompletions": {
      "description": "TaskCompletions represents a summary row of total computed counts of, plus individual user data\n/reporting/precanned/usertaskcompletions.json endpoint",
      "properties": {
        "totalActiveProjects": {
          "type": "integer"
        },
        "totalAssignedTasks": {
          "type": "integer"
        },
        "totalCompletedTasks": {
          "type": "integer"
        },
        "totalOverdueTasks": {
          "type": "integer"
        },
        "totalProjects": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/people.TaskCompletion"
          },
          "type": "array"
        }
      },
      "title": "TaskCompletions",
      "type": "object"
    },
    "people.UsersPayload": {
      "description": "UsersPayload consists of userIDs",
      "properties": {
        "checkTeamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "UsersPayload",
      "type": "object"
    },
    "performance.PeopleMetricPerformance": {
      "description": "PeopleMetricPerformance contains all the information returned from a performance.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "title": "PeopleMetricPerformance",
      "type": "object"
    },
    "performance.PeopleMetricPerformancesResponse": {
      "description": "PeopleMetricPerformancesResponse contains information about a group of performances.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/performance.PeopleMetricPerformance"
          },
          "type": "array"
        }
      },
      "title": "PeopleMetricPerformancesResponse",
      "type": "object"
    },
    "planner.WorkloadPlanner": {
      "description": "WorkloadPlanner contains all the information returned from a planner.",
      "properties": {
        "capacities": {
          "additionalProperties": {
            "$ref": "#/definitions/planner.WorkloadPlannerCapacity"
          },
          "type": "object"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "WorkloadPlanner",
      "type": "object"
    },
    "planner.WorkloadPlannerCapacity": {
      "description": "WorkloadPlannerCapacity contains the information regarding an user on a\nspecific date.",
      "properties": {
        "capacity": {
          "description": "percentage",
          "type": "number"
        },
        "estimateMinutesTotal": {
          "type": "number"
        },
        "lengthOfDayMinutes": {
          "type": "number"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/planner.WorkloadPlannerCapacityTask"
          },
          "type": "array"
        }
      },
      "title": "WorkloadPlannerCapacity",
      "type": "object"
    },
    "planner.WorkloadPlannerCapacityTask": {
      "description": "WorkloadPlannerCapacityTask provides how many minutes should a user work in a\ntask for a specific date.",
      "properties": {
        "estimateMinutes": {
          "type": "number"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "title": "WorkloadPlannerCapacityTask",
      "type": "object"
    },
    "planner.WorkloadPlannersResponse": {
      "description": "WorkloadPlannersResponse contains information about a group of planners.",
      "properties": {
        "included": {
          "properties": {
            "calendarEvents": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyCalendarEvent"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "timelogs": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Timelog"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workingHourEntries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHourEntry"
              },
              "type": "object"
            },
            "workingHours": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHour"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "planners": {
          "items": {
            "$ref": "#/definitions/planner.WorkloadPlanner"
          },
          "type": "array"
        }
      },
      "title": "WorkloadPlannersResponse",
      "type": "object"
    },
    "priceplan.FeaturesResponse": {
      "description": "FeaturesResponse contains all the information returned when sending a GET\nrequest to the features endpoint.",
      "properties": {
        "features": {
          "items": {
            "$ref": "#/definitions/view.Feature"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "FeaturesResponse",
      "type": "object"
    },
    "priceplan.PlansResponse": {
      "description": "PlansResponse contains all the information returned when sending a GET\nrequest to the plans endpoint.",
      "properties": {
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "plans": {
          "items": {
            "$ref": "#/definitions/view.Plan"
          },
          "type": "array"
        }
      },
      "title": "PlansResponse",
      "type": "object"
    },
    "project.FeatureOrder": {
      "description": "FeatureOrder contains the information of the feature\norder to display in the UI for a project.",
      "properties": {
        "billing": {
          "type": "integer"
        },
        "board": {
          "type": "integer"
        },
        "comments": {
          "type": "integer"
        },
        "dashboard": {
          "type": "integer"
        },
        "files": {
          "type": "integer"
        },
        "finance": {
          "type": "integer"
        },
        "forms": {
          "type": "integer"
        },
        "gantt": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "type": "integer"
        },
        "links": {
          "type": "integer"
        },
        "list": {
          "type": "integer"
        },
        "messages": {
          "type": "integer"
        },
        "milestones": {
          "type": "integer"
        },
        "notebooks": {
          "type": "integer"
        },
        "numVisibleTabs": {
          "type": "integer"
        },
        "people": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "proofs": {
          "type": "integer"
        },
        "risks": {
          "type": "integer"
        },
        "schedule": {
          "type": "integer"
        },
        "settings": {
          "type": "integer"
        },
        "table": {
          "type": "integer"
        },
        "tickets": {
          "type": "integer"
        },
        "time": {
          "type": "integer"
        },
        "timeline": {
          "type": "integer"
        }
      },
      "title": "FeatureOrder",
      "type": "object"
    },
    "project.FeatureOrderDefaults": {
      "description": "FeatureOrderDefaults is the payload used to set\nthe defaults for all projects feature order, and\nallows to also update the projects that have\nan explicitly set defaults",
      "properties": {
        "billing": {
          "type": "integer"
        },
        "board": {
          "type": "integer"
        },
        "comments": {
          "type": "integer"
        },
        "dashboard": {
          "type": "integer"
        },
        "files": {
          "type": "integer"
        },
        "finance": {
          "type": "integer"
        },
        "forms": {
          "type": "integer"
        },
        "gantt": {
          "type": "integer"
        },
        "links": {
          "type": "integer"
        },
        "list": {
          "type": "integer"
        },
        "messages": {
          "type": "integer"
        },
        "milestones": {
          "type": "integer"
        },
        "notebooks": {
          "type": "integer"
        },
        "numVisibleTabs": {
          "type": "integer"
        },
        "people": {
          "type": "integer"
        },
        "proofs": {
          "type": "integer"
        },
        "risks": {
          "type": "integer"
        },
        "schedule": {
          "type": "integer"
        },
        "settings": {
          "type": "integer"
        },
        "table": {
          "type": "integer"
        },
        "tickets": {
          "type": "integer"
        },
        "time": {
          "type": "integer"
        },
        "timeline": {
          "type": "integer"
        }
      },
      "title": "FeatureOrderDefaults",
      "type": "object"
    },
    "project.FeatureOrderRequest": {
      "description": "FeatureOrderRequest is the payload used to set\nthe project features order as we want to appear\nin the UI tabs selection",
      "properties": {
        "featureOrder": {
          "$ref": "#/definitions/project.FeatureOrder"
        },
        "featureOrderOptions": {
          "properties": {
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "FeatureOrderRequest",
      "type": "object"
    },
    "project.FeatureOrderResponse": {
      "description": "FeatureOrderResponse is the api response containing\ninformation about the order to display the featues in the UI.",
      "properties": {
        "featureOrder": {
          "$ref": "#/definitions/project.FeatureOrder"
        }
      },
      "title": "FeatureOrderResponse",
      "type": "object"
    },
    "project.Included": {
      "description": "Included is the task sideloads",
      "properties": {
        "activities": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ActivityLog"
          },
          "type": "object"
        },
        "companies": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Company"
          },
          "type": "object"
        },
        "countries": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Country"
          },
          "type": "object"
        },
        "currencies": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Currency"
          },
          "type": "object"
        },
        "customfieldProjects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.CustomFieldValueProject"
          },
          "type": "object"
        },
        "customfields": {
          "additionalProperties": {
            "$ref": "#/definitions/view.CustomField"
          },
          "type": "object"
        },
        "industries": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Industry"
          },
          "type": "object"
        },
        "portfolioBoards": {
          "additionalProperties": {
            "$ref": "#/definitions/view.PortfolioBoard"
          },
          "type": "object"
        },
        "portfolioCards": {
          "additionalProperties": {
            "$ref": "#/definitions/view.PortfolioCard"
          },
          "type": "object"
        },
        "portfolioColumns": {
          "additionalProperties": {
            "$ref": "#/definitions/view.PortfolioColumn"
          },
          "type": "object"
        },
        "projectBudgets": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectBudget"
          },
          "type": "object"
        },
        "projectCategories": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectCategory"
          },
          "type": "object"
        },
        "projectEmailDropboxes": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectEmailDropbox"
          },
          "type": "object"
        },
        "projectTaskStats": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskStats"
          },
          "type": "object"
        },
        "projectUpdates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectUpdate"
          },
          "type": "object"
        },
        "stages": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Stage"
          },
          "type": "object"
        },
        "tags": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Tag"
          },
          "type": "object"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        },
        "workflows": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Workflow"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "project.Meta": {
      "description": "Meta is the typed meta object for project responses. It embeds view.Meta to\nreuse its pagination fields and exposes typed extras so they appear in the\ngenerated API contract instead of being attached dynamically through\nview.Meta.Fields.",
      "properties": {
        "averageSpend": {
          "type": "integer"
        },
        "data": {
          "type": "object"
        },
        "integrations": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Integrations"
          },
          "type": "object"
        },
        "limit": {
          "type": "integer"
        },
        "nextCursor": {
          "type": "string"
        },
        "page": {
          "$ref": "#/definitions/view.MetaPage"
        },
        "permissions": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectPermissions"
          },
          "type": "object"
        },
        "prevCursor": {
          "type": "string"
        },
        "projectProfitability": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectProfitabilitySummary"
          },
          "type": "object"
        },
        "projectStats": {
          "$ref": "#/definitions/view.ProjectStats"
        },
        "projects": {
          "$ref": "#/definitions/view.ProjectCounts"
        },
        "stats": {
          "$ref": "#/definitions/view.ProjectItemStats"
        },
        "totalCapacity": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.ProjectsUserMeta"
        }
      },
      "title": "Meta",
      "type": "object"
    },
    "project.SampleProjectsResponse": {
      "description": "SampleProjectsResponse contains information about a group of sample projects.",
      "properties": {
        "included": {
          "properties": {
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.SampleProject"
          },
          "type": "array"
        }
      },
      "title": "SampleProjectsResponse",
      "type": "object"
    },
    "project.projectsResponse": {
      "description": "projectsResponse contains information about a group of projects.",
      "properties": {
        "included": {
          "$ref": "#/definitions/project.Included"
        },
        "meta": {
          "$ref": "#/definitions/project.Meta"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.Project"
          },
          "type": "array"
        }
      },
      "title": "projectsResponse",
      "type": "object"
    },
    "project.projectsResponseV205": {
      "description": "projectsResponseV205 contains information about a group of projects.",
      "properties": {
        "included": {
          "$ref": "#/definitions/project.Included"
        },
        "meta": {
          "$ref": "#/definitions/project.Meta"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.ProjectV205"
          },
          "type": "array"
        }
      },
      "title": "projectsResponseV205",
      "type": "object"
    },
    "project.responseV205": {
      "description": "responseV205 contains information about a project.",
      "properties": {
        "included": {
          "$ref": "#/definitions/project.Included"
        },
        "meta": {
          "$ref": "#/definitions/project.Meta"
        },
        "project": {
          "$ref": "#/definitions/view.ProjectV205"
        }
      },
      "title": "responseV205",
      "type": "object"
    },
    "projectbudget.BudgetsResponse": {
      "description": "BudgetsResponse contains information about a group of budgets.",
      "properties": {
        "budgets": {
          "items": {
            "$ref": "#/definitions/view.ProjectBudget"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "notifications": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudgetNotification"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "BudgetsResponse",
      "type": "object"
    },
    "quote.QuoteResponse": {
      "description": "QuoteResponse contains information about a specific quote.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "quote": {
          "$ref": "#/definitions/view.Quote"
        }
      },
      "title": "QuoteResponse",
      "type": "object"
    },
    "quote.QuotesResponse": {
      "description": "QuotesResponse contains information about a group of quotes.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "quotes": {
          "items": {
            "$ref": "#/definitions/view.Quote"
          },
          "type": "array"
        }
      },
      "title": "QuotesResponse",
      "type": "object"
    },
    "quotelineitem.QuoteLineItemResponse": {
      "description": "QuoteLineItemResponse contains information about a specific quote lineitem.",
      "properties": {
        "quotelineitem": {
          "$ref": "#/definitions/view.QuoteLineItem"
        }
      },
      "title": "QuoteLineItemResponse",
      "type": "object"
    },
    "quotesection.QuoteSectionResponse": {
      "description": "QuoteSectionResponse contains information about a specific quote section.",
      "properties": {
        "quotesection": {
          "$ref": "#/definitions/view.QuoteSection"
        }
      },
      "title": "QuoteSectionResponse",
      "type": "object"
    },
    "quotesetting.QuoteSettingResponse": {
      "description": "QuoteSettingResponse is the API response containing a quote setting.",
      "properties": {
        "quoteSetting": {
          "$ref": "#/definitions/quotesetting.QuoteSettingView"
        }
      },
      "title": "QuoteSettingResponse",
      "type": "object"
    },
    "quotesetting.QuoteSettingView": {
      "description": "QuoteSettingView is the API representation of a quote setting.",
      "properties": {
        "autoQuoteNumbers": {
          "type": "boolean"
        },
        "defaultBillableRateType": {
          "type": "string"
        },
        "prependStatementOfWork": {
          "type": "boolean"
        },
        "quoteNumberPattern": {
          "type": "string"
        },
        "quoteNumberPrefix": {
          "type": "string"
        },
        "signaturesOnPdf": {
          "type": "boolean"
        }
      },
      "title": "QuoteSettingView",
      "type": "object"
    },
    "record.CustomItemRecord": {
      "description": "CustomItemRecord contains all the information returned from a record.",
      "properties": {
        "fieldValues": {
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "positionAfterId": {
          "type": "integer"
        },
        "sectionId": {
          "type": "integer"
        }
      },
      "title": "CustomItemRecord",
      "type": "object"
    },
    "record.CustomItemRecordsResponse": {
      "description": "CustomItemRecordsResponse contains information about a group of records.",
      "properties": {
        "customItemRecords": {
          "items": {
            "$ref": "#/definitions/view.CustomItemRecord"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "customItemFields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemField"
              },
              "type": "object"
            },
            "customItemSections": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemSection"
              },
              "type": "object"
            },
            "customItems": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItem"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CustomItemRecordsResponse",
      "type": "object"
    },
    "record.Request": {
      "description": "Request contains information of a record to be created or updated.",
      "properties": {
        "customItemRecord": {
          "$ref": "#/definitions/record.CustomItemRecord"
        },
        "customItemRecordOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "record.Response": {
      "description": "Response contains information about a specific record.",
      "properties": {
        "customItemRecord": {
          "$ref": "#/definitions/view.CustomItemRecord"
        },
        "included": {
          "properties": {
            "customItemFields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemField"
              },
              "type": "object"
            },
            "customItemSections": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItemSection"
              },
              "type": "object"
            },
            "customItems": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItem"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "risk.Request": {
      "description": "Request contains information of a risk to be created or updated.",
      "properties": {
        "risk": {
          "$ref": "#/definitions/risk.Risk"
        },
        "riskOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/tag.Tag"
          },
          "type": "array"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "risk.Response": {
      "description": "Response contains information about a specific risk.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "risk": {
          "$ref": "#/definitions/view.Risk"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "risk.Risk": {
      "description": "Risk contains all the information returned from a risk.",
      "properties": {
        "impactCost": {
          "type": "boolean"
        },
        "impactPerformance": {
          "type": "boolean"
        },
        "impactSchedule": {
          "type": "boolean"
        },
        "impactValue": {
          "type": "integer"
        },
        "mitigationPlan": {
          "type": "string"
        },
        "probabilityValue": {
          "type": "integer"
        },
        "source": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      },
      "title": "Risk",
      "type": "object"
    },
    "risk.RiskDetailsResponse": {
      "description": "RiskDetailsResponse contains risk rows with included entities.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "risks": {
          "items": {
            "$ref": "#/definitions/view.Risk"
          },
          "type": "array"
        }
      },
      "title": "RiskDetailsResponse",
      "type": "object"
    },
    "risk.RisksResponse": {
      "description": "RisksResponse contains all the information returned when sending a GET\nrequest to the risk endpoint.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "risks": {
          "items": {
            "$ref": "#/definitions/view.Risk"
          },
          "type": "array"
        }
      },
      "title": "RisksResponse",
      "type": "object"
    },
    "section.CustomItemSection": {
      "description": "CustomItemSection contains all the information returned from a section.",
      "properties": {
        "displayName": {
          "type": "string"
        },
        "positionAfterId": {
          "type": "integer"
        }
      },
      "title": "CustomItemSection",
      "type": "object"
    },
    "section.CustomItemSectionsResponse": {
      "description": "CustomItemSectionsResponse contains information about a group of sections.",
      "properties": {
        "customItemSections": {
          "items": {
            "$ref": "#/definitions/view.CustomItemSection"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "customItems": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItem"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "CustomItemSectionsResponse",
      "type": "object"
    },
    "section.Request": {
      "description": "Request contains information of a section to be created or updated.",
      "properties": {
        "customItemSection": {
          "$ref": "#/definitions/section.CustomItemSection"
        },
        "customItemSectionOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "section.Response": {
      "description": "Response contains information about a specific section.",
      "properties": {
        "customItemSection": {
          "$ref": "#/definitions/view.CustomItemSection"
        },
        "included": {
          "properties": {
            "customItems": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomItem"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "serviceinterfaces.SkillUserRequestPayload": {
      "description": "SkillUserRequestPayload is the payload for skill user service.",
      "properties": {
        "SkillID": {
          "type": "integer"
        },
        "UserIDs": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "SkillUserRequestPayload",
      "type": "object"
    },
    "serviceinterfaces.TimelogValidationApproval": {
      "description": "TimelogValidationApproval represents an existing approval that blocks timelog creation",
      "properties": {
        "id": {
          "type": "integer"
        },
        "monthDate": {
          "$ref": "#/definitions/entity.MonthDate"
        },
        "userId": {
          "type": "integer"
        },
        "weekDate": {
          "$ref": "#/definitions/entity.WeekDate"
        }
      },
      "title": "TimelogValidationApproval",
      "type": "object"
    },
    "skill.BulkDeleteRequest": {
      "description": "BulkDeleteRequest contains the ids of the skills that should be removed.",
      "properties": {
        "skillIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "skill.Request": {
      "description": "Request contains information of a skill to be created or updated.",
      "properties": {
        "skill": {
          "$ref": "#/definitions/skill.Skill"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "skill.Response": {
      "description": "Response contains information about a specific skill.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "skill": {
          "$ref": "#/definitions/view.Skill"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "skill.Skill": {
      "description": "Skill contains all the information returned from a skill.",
      "properties": {
        "name": {
          "type": "string"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "Skill",
      "type": "object"
    },
    "skill.SkillsResponse": {
      "description": "SkillsResponse contains information about a group of skills.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "skills": {
          "items": {
            "$ref": "#/definitions/view.Skill"
          },
          "type": "array"
        }
      },
      "title": "SkillsResponse",
      "type": "object"
    },
    "stage.MoveTaskRequest": {
      "description": "MoveTaskRequest contains the id of the task to be moved and the id of the task after\nto calculate the position\npositionAfterTask: top of list = -1, other = taskId",
      "properties": {
        "positionAfterTask": {
          "type": "integer"
        },
        "stageId": {
          "type": "integer"
        },
        "taskId": {
          "type": "integer"
        },
        "workflowId": {
          "type": "integer"
        }
      },
      "title": "MoveTaskRequest",
      "type": "object"
    },
    "stage.Request": {
      "description": "Request contains information of a stage to be created or updated.",
      "properties": {
        "stage": {
          "$ref": "#/definitions/stage.Stage"
        },
        "stageOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "stage.Response": {
      "description": "Response contains information about a specific stage.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workflows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Workflow"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "stage": {
          "$ref": "#/definitions/view.Stage"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "stage.Stage": {
      "description": "Stage contains all the information returned from a stage.",
      "properties": {
        "color": {
          "$ref": "#/definitions/payload.NullableHexColor"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "positionAfterStage": {
          "type": "integer"
        },
        "showCompletedTasks": {
          "$ref": "#/definitions/payload.NullableBool"
        },
        "workflowId": {
          "type": "integer"
        }
      },
      "title": "Stage",
      "type": "object"
    },
    "stage.StagesResponse": {
      "description": "StagesResponse contains information about a group of stages.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workflows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Workflow"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "stages": {
          "items": {
            "$ref": "#/definitions/view.Stage"
          },
          "type": "array"
        }
      },
      "title": "StagesResponse",
      "type": "object"
    },
    "status.TimelineResponse": {
      "description": "TimelineResponse contains information about a group of statuses.",
      "properties": {
        "included": {
          "properties": {
            "userEvents": {
              "additionalProperties": {
                "$ref": "#/definitions/view.UserEvents"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "statuses": {
          "items": {
            "$ref": "#/definitions/view.Status"
          },
          "type": "array"
        }
      },
      "title": "TimelineResponse",
      "type": "object"
    },
    "summary.EventResponse": {
      "description": "EventResponse contains counters for events.",
      "properties": {
        "today": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "title": "EventResponse",
      "type": "object"
    },
    "summary.HealthResponse": {
      "description": "HealthResponse contains counters for health.",
      "properties": {
        "0": {
          "type": "integer"
        },
        "1": {
          "type": "integer"
        },
        "2": {
          "type": "integer"
        },
        "3": {
          "type": "integer"
        }
      },
      "title": "HealthResponse",
      "type": "object"
    },
    "summary.MilestoneCountsResponse": {
      "description": "MilestoneCountsResponse contains counters for milestones.",
      "properties": {
        "active": {
          "type": "integer"
        },
        "complete": {
          "type": "integer"
        },
        "late": {
          "type": "integer"
        },
        "today": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "title": "MilestoneCountsResponse",
      "type": "object"
    },
    "summary.MilestoneResponse": {
      "description": "MilestoneResponse contains groups of counter for milestones.",
      "properties": {
        "everyone": {
          "$ref": "#/definitions/summary.MilestoneCountsResponse"
        },
        "mine": {
          "$ref": "#/definitions/summary.MilestoneCountsResponse"
        }
      },
      "title": "MilestoneResponse",
      "type": "object"
    },
    "summary.ProjectResponse": {
      "description": "ProjectResponse contains all the information returned when sending\na GET request to the summary endpoint (project).",
      "properties": {
        "events": {
          "$ref": "#/definitions/summary.EventResponse"
        },
        "health": {
          "$ref": "#/definitions/summary.HealthResponse"
        },
        "milestones": {
          "$ref": "#/definitions/summary.MilestoneResponse"
        },
        "risks": {
          "$ref": "#/definitions/summary.RiskResponse"
        },
        "since": {
          "$ref": "#/definitions/summary.SinceResponse"
        },
        "stages": {
          "$ref": "#/definitions/summary.StageResponse"
        },
        "tasks": {
          "$ref": "#/definitions/summary.ProjectTasksResponse"
        },
        "time": {
          "$ref": "#/definitions/summary.TimeResponse"
        },
        "unread": {
          "$ref": "#/definitions/summary.UnreadResponse"
        }
      },
      "title": "ProjectResponse",
      "type": "object"
    },
    "summary.ProjectTasksResponse": {
      "description": "ProjectTasksResponse contains groups of counters tasks.",
      "properties": {
        "everyone": {
          "$ref": "#/definitions/summary.TaskResponse"
        },
        "mine": {
          "$ref": "#/definitions/summary.TaskResponse"
        },
        "user": {
          "$ref": "#/definitions/summary.TaskResponse"
        }
      },
      "title": "ProjectTasksResponse",
      "type": "object"
    },
    "summary.Response": {
      "description": "Response contains all the information returned when sending a GET\nrequest to the summary endpoint (dashboard).",
      "properties": {
        "events": {
          "$ref": "#/definitions/summary.EventResponse"
        },
        "health": {
          "$ref": "#/definitions/summary.HealthResponse"
        },
        "milestones": {
          "$ref": "#/definitions/summary.MilestoneCountsResponse"
        },
        "risks": {
          "$ref": "#/definitions/summary.RiskResponse"
        },
        "since": {
          "$ref": "#/definitions/summary.SinceResponse"
        },
        "tasks": {
          "$ref": "#/definitions/summary.TaskResponse"
        },
        "time": {
          "$ref": "#/definitions/summary.TimeCounterResponse"
        },
        "unread": {
          "$ref": "#/definitions/summary.UnreadResponse"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "summary.RiskResponse": {
      "description": "RiskResponse contains counters for risks.",
      "properties": {
        "closed": {
          "type": "integer"
        },
        "open": {
          "type": "integer"
        },
        "pending": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "RiskResponse",
      "type": "object"
    },
    "summary.SinceResponse": {
      "description": "SinceResponse contains counters for since.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "events": {
          "type": "integer"
        },
        "tasksComplete": {
          "type": "integer"
        },
        "tasksCreated": {
          "type": "integer"
        }
      },
      "title": "SinceResponse",
      "type": "object"
    },
    "summary.StageDataResponse": {
      "description": "StageDataResponse contains information of a specific stage.",
      "properties": {
        "color": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "tasks": {
          "$ref": "#/definitions/summary.StageTaskResponse"
        }
      },
      "title": "StageDataResponse",
      "type": "object"
    },
    "summary.StageResponse": {
      "description": "StageResponse contains counters for columns.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/summary.StageDataResponse"
          },
          "type": "array"
        }
      },
      "title": "StageResponse",
      "type": "object"
    },
    "summary.StageTaskResponse": {
      "description": "StageTaskResponse contains counters from stage's tasks.",
      "properties": {
        "active": {
          "type": "integer"
        },
        "archived": {
          "type": "integer"
        },
        "completed": {
          "type": "integer"
        },
        "count": {
          "type": "integer"
        }
      },
      "title": "StageTaskResponse",
      "type": "object"
    },
    "summary.TaskResponse": {
      "description": "TaskResponse contains counters for tasks.",
      "properties": {
        "active": {
          "type": "integer"
        },
        "complete": {
          "type": "integer"
        },
        "late": {
          "type": "integer"
        },
        "nodate": {
          "type": "integer"
        },
        "started": {
          "type": "integer"
        },
        "today": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "title": "TaskResponse",
      "type": "object"
    },
    "summary.TimeCounterEstimateResponse": {
      "description": "TimeCounterEstimateResponse contains estimate counters for times.",
      "properties": {
        "activeMinsEstimated": {
          "type": "integer"
        },
        "completedMinsEstimated": {
          "type": "integer"
        },
        "totalMinsEstimated": {
          "type": "integer"
        },
        "totalWithTimeLoggedEstimatedMins": {
          "type": "integer"
        }
      },
      "title": "TimeCounterEstimateResponse",
      "type": "object"
    },
    "summary.TimeCounterResponse": {
      "description": "TimeCounterResponse contains counters for times.",
      "properties": {
        "estimates": {
          "$ref": "#/definitions/summary.TimeCounterEstimateResponse"
        },
        "totals": {
          "$ref": "#/definitions/summary.TimeCounterTotalResponse"
        }
      },
      "title": "TimeCounterResponse",
      "type": "object"
    },
    "summary.TimeCounterTotalResponse": {
      "description": "TimeCounterTotalResponse contains total counters for times.",
      "properties": {
        "billableMinsSum": {
          "type": "integer"
        },
        "billedMinsSum": {
          "type": "integer"
        },
        "nonBillableMinsSum": {
          "type": "integer"
        },
        "nonBilledMinsSum": {
          "type": "integer"
        },
        "totalMinsSum": {
          "type": "integer"
        }
      },
      "title": "TimeCounterTotalResponse",
      "type": "object"
    },
    "summary.TimeResponse": {
      "description": "TimeResponse contains counters for times' groups.",
      "properties": {
        "all": {
          "$ref": "#/definitions/summary.TimeCounterResponse"
        },
        "mine": {
          "$ref": "#/definitions/summary.TimeCounterResponse"
        }
      },
      "title": "TimeResponse",
      "type": "object"
    },
    "summary.UnreadResponse": {
      "description": "UnreadResponse contains counters for unread objects.",
      "properties": {
        "comments": {
          "type": "integer"
        },
        "messages": {
          "type": "integer"
        }
      },
      "title": "UnreadResponse",
      "type": "object"
    },
    "tag.BulkDeleteRequest": {
      "description": "BulkDeleteRequest contains the ids of the tags that should be removed.",
      "properties": {
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tagNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "tag.Request": {
      "description": "Request contains information of a tag to be created or updated.",
      "properties": {
        "tag": {
          "$ref": "#/definitions/tag.Tag"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "tag.Response": {
      "description": "Response contains information about a specific tag.",
      "properties": {
        "tag": {
          "$ref": "#/definitions/view.Tag"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "tag.Tag": {
      "description": "Tag contains all the information returned from a tag.",
      "properties": {
        "color": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "title": "Tag",
      "type": "object"
    },
    "tag.TagsResponse": {
      "description": "TagsResponse contains information about a group of tags.",
      "properties": {
        "included": {
          "properties": {
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Tag"
          },
          "type": "array"
        }
      },
      "title": "TagsResponse",
      "type": "object"
    },
    "task.CustomFields": {
      "description": "CustomFields is the custom fields type.",
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/value.CustomFieldValue"
          },
          "type": "array"
        }
      },
      "title": "CustomFields",
      "type": "object"
    },
    "task.File": {
      "description": "File stores information about a uploaded file.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        }
      },
      "title": "File",
      "type": "object"
    },
    "task.Included": {
      "description": "Included is the task sideloads",
      "properties": {
        "comments": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Comment"
          },
          "type": "object"
        },
        "companies": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Company"
          },
          "type": "object"
        },
        "customfieldTasks": {
          "additionalProperties": {
            "$ref": "#/definitions/view.CustomFieldValueTask"
          },
          "type": "object"
        },
        "customfields": {
          "additionalProperties": {
            "$ref": "#/definitions/view.CustomField"
          },
          "type": "object"
        },
        "files": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectFileV205"
          },
          "type": "object"
        },
        "jobRoles": {
          "additionalProperties": {
            "$ref": "#/definitions/view.JobRole"
          },
          "type": "object"
        },
        "lockdowns": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Lockdown"
          },
          "type": "object"
        },
        "milestones": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Milestone"
          },
          "type": "object"
        },
        "projectCategories": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectCategory"
          },
          "type": "object"
        },
        "projectIntegrations": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Integrations"
          },
          "type": "object"
        },
        "projectPermissions": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectPermissions"
          },
          "type": "object"
        },
        "projects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectV205"
          },
          "type": "object"
        },
        "proofs": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Proof"
          },
          "type": "object"
        },
        "stages": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Stage"
          },
          "type": "object"
        },
        "subtaskStats": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskStats"
          },
          "type": "object"
        },
        "tags": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Tag"
          },
          "type": "object"
        },
        "taskSequences": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskSequence"
          },
          "type": "object"
        },
        "taskgroups": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Taskgroup"
          },
          "type": "object"
        },
        "tasklists": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Tasklist"
          },
          "type": "object"
        },
        "tasks": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskV205"
          },
          "type": "object"
        },
        "teams": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Team"
          },
          "type": "object"
        },
        "timeTotals": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskTimeTotals"
          },
          "type": "object"
        },
        "timers": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Timer"
          },
          "type": "object"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        },
        "workflows": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Workflow"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "task.Options": {
      "description": "Options contains any options which can be set\nfor the task request",
      "properties": {
        "appendAssignees": {
          "type": "boolean"
        },
        "checkInvalidusers": {
          "type": "boolean"
        },
        "everyoneMustDo": {
          "type": "boolean"
        },
        "fireWebhook": {
          "type": "boolean"
        },
        "isTemplate": {
          "type": "boolean"
        },
        "logActivity": {
          "type": "boolean"
        },
        "notify": {
          "type": "boolean"
        },
        "parseInlineTags": {
          "type": "boolean"
        },
        "positionAfterTaskId": {
          "type": "integer"
        },
        "pushDependents": {
          "type": "boolean"
        },
        "pushSubtasks": {
          "type": "boolean"
        },
        "shiftProjectDates": {
          "type": "boolean"
        },
        "useDefaults": {
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "Options",
      "type": "object"
    },
    "task.PendingFile": {
      "description": "PendingFile stores information about a file uploaded on-the-fly.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "reference": {
          "type": "string"
        }
      },
      "title": "PendingFile",
      "type": "object"
    },
    "task.Predecessor": {
      "description": "Predecessor stores information about task predecessors.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "Predecessor",
      "type": "object"
    },
    "task.Reminder": {
      "description": "Reminder stores all necessary information to create a task reminder.",
      "properties": {
        "isRelative": {
          "type": "boolean"
        },
        "note": {
          "type": "string"
        },
        "relativeNumberDays": {
          "type": "integer"
        },
        "remindAt": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Reminder",
      "type": "object"
    },
    "task.RepeatOptions": {
      "description": "RepeatOptions stores recurring information for the task.",
      "properties": {
        "duration": {
          "type": "integer"
        },
        "editOption": {
          "type": "string"
        },
        "endsAt": {
          "$ref": "#/definitions/payload.NullableDate"
        },
        "frequency": {
          "$ref": "#/definitions/payload.NullableTaskRepeatFrequency"
        },
        "monthlyRepeatType": {
          "$ref": "#/definitions/payload.NullableTaskRepeatMonthlyType"
        },
        "rrule": {
          "description": "Adds the RRule definition for repeating tasks. It replaces all other repeating fields.",
          "title": "RRule",
          "type": "string"
        },
        "selectedDays": {
          "$ref": "#/definitions/payload.NullableWorkingHourEntryWeekdays"
        }
      },
      "title": "RepeatOptions",
      "type": "object"
    },
    "task.Request": {
      "description": "Request contains information of a task to be created or updated.",
      "properties": {
        "attachmentOptions": {
          "properties": {
            "removeOtherFiles": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "attachments": {
          "properties": {
            "files": {
              "items": {
                "$ref": "#/definitions/task.File"
              },
              "type": "array"
            },
            "pendingFiles": {
              "items": {
                "$ref": "#/definitions/task.PendingFile"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "predecessors": {
          "items": {
            "$ref": "#/definitions/task.Predecessor"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/tag.Tag"
          },
          "type": "array"
        },
        "task": {
          "$ref": "#/definitions/task.Task"
        },
        "taskOptions": {
          "$ref": "#/definitions/task.Options"
        },
        "workflows": {
          "$ref": "#/definitions/task.Workflows"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "task.Task": {
      "description": "Task contains all the information returned from a task.",
      "properties": {
        "allocationId": {
          "type": "integer"
        },
        "assignees": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "attachmentIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "changeFollowers": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "commentFollowers": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "completeFollowers": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "completedAt": {
          "type": "string"
        },
        "completedBy": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "crmDealIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "customFields": {
          "$ref": "#/definitions/task.CustomFields"
        },
        "description": {
          "type": "string"
        },
        "descriptionContentType": {
          "type": "string"
        },
        "dueAt": {
          "$ref": "#/definitions/payload.NullableDate"
        },
        "estimatedMinutes": {
          "type": "integer"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "hasDeskTickets": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "notify": {
          "type": "boolean"
        },
        "originalDueDate": {
          "$ref": "#/definitions/payload.NullableDate"
        },
        "parentTaskId": {
          "type": "integer"
        },
        "priority": {
          "$ref": "#/definitions/payload.NullableTaskPriority"
        },
        "private": {
          "type": "boolean"
        },
        "progress": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "reminders": {
          "items": {
            "$ref": "#/definitions/task.Reminder"
          },
          "type": "array"
        },
        "repeatOptions": {
          "$ref": "#/definitions/task.RepeatOptions"
        },
        "startAt": {
          "$ref": "#/definitions/payload.NullableDate"
        },
        "status": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "taskgroupId": {
          "type": "integer"
        },
        "tasklistId": {
          "type": "integer"
        },
        "templateRoleName": {
          "type": "string"
        },
        "ticketId": {
          "type": "integer"
        }
      },
      "title": "Task",
      "type": "object"
    },
    "task.TasksResponse": {
      "description": "TasksResponse contains information about a group of tasks.",
      "title": "TasksResponse",
      "type": "object"
    },
    "task.Workflows": {
      "description": "Workflows stores information about where the task lives in the workflow",
      "properties": {
        "positionAfterTask": {
          "type": "integer"
        },
        "stageId": {
          "type": "integer"
        },
        "workflowId": {
          "type": "integer"
        }
      },
      "title": "Workflows",
      "type": "object"
    },
    "task.responseV205": {
      "properties": {
        "affected": {
          "$ref": "#/definitions/view.TaskAffectedV205"
        },
        "included": {
          "$ref": "#/definitions/task.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "task": {
          "$ref": "#/definitions/view.TaskV205"
        }
      },
      "title": "responseV205",
      "type": "object"
    },
    "task.tasksResponseV205": {
      "properties": {
        "included": {
          "$ref": "#/definitions/task.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/view.TaskV205"
          },
          "type": "array"
        }
      },
      "title": "tasksResponseV205",
      "type": "object"
    },
    "tasklist.Response": {
      "description": "Response contains information about a specific tasklist.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "customfieldTasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomFieldValueTask"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "defaultTaskReminders": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskReminder"
              },
              "type": "object"
            },
            "lockdowns": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Lockdown"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "notifications": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudgetNotification"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tasklistBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workflowStages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            },
            "workflows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Workflow"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "tasklist": {
          "$ref": "#/definitions/view.Tasklist"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "tasklist.TasklistsResponse": {
      "description": "TasklistsResponse contains information about a group of tasklists.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "customfieldTasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomFieldValueTask"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "defaultTaskReminders": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskReminder"
              },
              "type": "object"
            },
            "lockdowns": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Lockdown"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "notifications": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudgetNotification"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tasklistBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workflowStages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            },
            "workflows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Workflow"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "tasklists": {
          "items": {
            "$ref": "#/definitions/view.Tasklist"
          },
          "type": "array"
        }
      },
      "title": "TasklistsResponse",
      "type": "object"
    },
    "tasklistbudget.Budget": {
      "description": "Budget contains all the information returned from a budget.",
      "properties": {
        "capacity": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "notifications": {
          "items": {
            "$ref": "#/definitions/tasklistbudget.notification"
          },
          "type": "array"
        },
        "tasklist": {
          "$ref": "#/definitions/tasklistbudget.tasklist"
        }
      },
      "title": "Budget",
      "type": "object"
    },
    "tasklistbudget.BudgetResponse": {
      "description": "BudgetResponse contains information about a group of budgets.",
      "properties": {
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "tasklistBudget": {
          "$ref": "#/definitions/view.TasklistBudget"
        }
      },
      "title": "BudgetResponse",
      "type": "object"
    },
    "tasklistbudget.BudgetsResponse": {
      "description": "BudgetsResponse contains information about a group of budgets.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "notifications": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudgetNotification"
              },
              "type": "object"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "tasklistBudgets": {
          "items": {
            "$ref": "#/definitions/view.TasklistBudget"
          },
          "type": "array"
        }
      },
      "title": "BudgetsResponse",
      "type": "object"
    },
    "tasklistbudget.BulkAddBudgetRequest": {
      "description": "BulkAddBudgetRequest structure hold information needed to add\nor update task list budgets along with request options",
      "properties": {
        "tasklistBudgets": {
          "items": {
            "$ref": "#/definitions/tasklistbudget.Budget"
          },
          "type": "array"
        },
        "tasklistBudgetsOptions": {
          "$ref": "#/definitions/tasklistbudget.RequestOptions"
        }
      },
      "title": "BulkAddBudgetRequest",
      "type": "object"
    },
    "tasklistbudget.PatchBudgetRequest": {
      "description": "PatchBudgetRequest Structure for the edit budget PATCH request",
      "properties": {
        "tasklistBudget": {
          "$ref": "#/definitions/tasklistbudget.Budget"
        },
        "tasklistBudgetOptions": {
          "$ref": "#/definitions/tasklistbudget.RequestOptions"
        }
      },
      "title": "PatchBudgetRequest",
      "type": "object"
    },
    "tasklistbudget.RequestOptions": {
      "description": "RequestOptions has options for events related to requests",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        },
        "logActivity": {
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "RequestOptions",
      "type": "object"
    },
    "tasklistbudget.company": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "company",
      "type": "object"
    },
    "tasklistbudget.notification": {
      "properties": {
        "capacityThreshold": {
          "type": "number"
        },
        "companies": {
          "items": {
            "$ref": "#/definitions/tasklistbudget.company"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "notificationMedium": {
          "type": "string"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/tasklistbudget.team"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/tasklistbudget.user"
          },
          "type": "array"
        }
      },
      "title": "notification",
      "type": "object"
    },
    "tasklistbudget.tasklist": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "tasklist",
      "type": "object"
    },
    "tasklistbudget.team": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "team",
      "type": "object"
    },
    "tasklistbudget.user": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "user",
      "type": "object"
    },
    "timeapproval.Options": {
      "description": "Options represents options for a write request.",
      "properties": {
        "useNotifyViaEmail": {
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "Options",
      "type": "object"
    },
    "timeapproval.RequestReopenRequest": {
      "description": "RequestReopenRequest contains information needed to request reopening a time approval",
      "properties": {
        "message": {
          "type": "string"
        },
        "options": {
          "$ref": "#/definitions/timeapproval.Options"
        }
      },
      "title": "RequestReopenRequest",
      "type": "object"
    },
    "timeapproval.Response": {
      "description": "Response contains information about a time approvals.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "timeApproval": {
          "$ref": "#/definitions/view.TimeApproval"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "timelog.CompanyTimelogsResponse": {
      "description": "CompanyTimelogsResponse contains information about a group of timelogs, grouped by company ID.",
      "properties": {
        "included": {
          "properties": {
            "billingInvoices": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Invoice"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "userRates": {
              "additionalProperties": {
                "$ref": "#/definitions/view.EffectiveUserRate"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timelogs": {
          "additionalProperties": {
            "items": {
              "$ref": "#/definitions/view.Timelog"
            },
            "type": "array"
          },
          "type": "object"
        }
      },
      "title": "CompanyTimelogsResponse",
      "type": "object"
    },
    "timelog.Request": {
      "description": "Request contains information of a timelog to be created or updated.",
      "properties": {
        "tags": {
          "items": {
            "$ref": "#/definitions/tag.Tag"
          },
          "type": "array"
        },
        "timelog": {
          "$ref": "#/definitions/timelog.Timelog"
        },
        "timelogOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "markTaskComplete": {
              "type": "boolean"
            },
            "parseInlineTags": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "timelog.Response": {
      "description": "Response contains information about a specific timelog.",
      "properties": {
        "included": {
          "properties": {
            "billingInvoices": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Invoice"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "userRates": {
              "additionalProperties": {
                "$ref": "#/definitions/view.EffectiveUserRate"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "timelog": {
          "$ref": "#/definitions/view.Timelog"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "timelog.Timelog": {
      "description": "Timelog contains all the information returned from a timelog.",
      "properties": {
        "date": {
          "format": "date",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "hasStartTime": {
          "type": "boolean"
        },
        "hours": {
          "type": "integer"
        },
        "invoiceId": {
          "type": "integer"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isUtc": {
          "type": "boolean"
        },
        "minutes": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "taskId": {
          "type": "integer"
        },
        "ticketId": {
          "type": "integer"
        },
        "time": {
          "$ref": "#/definitions/payload.Time"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Timelog",
      "type": "object"
    },
    "timelog.TimelogDetailsResponse": {
      "description": "TimelogDetailsResponse contains timelog rows with included entities.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedTask"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timelogs": {
          "items": {
            "$ref": "#/definitions/view.Timelog"
          },
          "type": "array"
        }
      },
      "title": "TimelogDetailsResponse",
      "type": "object"
    },
    "timelog.TimelogsResponse": {
      "description": "TimelogsResponse contains information about a group of timelogs.",
      "properties": {
        "included": {
          "properties": {
            "billingInvoices": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Invoice"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "currencies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Currency"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "userRates": {
              "additionalProperties": {
                "$ref": "#/definitions/view.EffectiveUserRate"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timelogs": {
          "items": {
            "$ref": "#/definitions/view.Timelog"
          },
          "type": "array"
        }
      },
      "title": "TimelogsResponse",
      "type": "object"
    },
    "timelog.TotalsResponse": {
      "description": "TotalsResponse contains information about timelog totals.",
      "properties": {
        "financialTotals": {
          "$ref": "#/definitions/view.FinancialTotals"
        },
        "subTasks": {
          "$ref": "#/definitions/view.TimelogTotalsSubtasks"
        },
        "time-totals": {
          "$ref": "#/definitions/view.TimelogTotals"
        }
      },
      "title": "TotalsResponse",
      "type": "object"
    },
    "timelog.ValidationResponse": {
      "description": "ValidationResponse represents the response for timelog validation",
      "properties": {
        "canCreate": {
          "type": "boolean"
        },
        "existingApproval": {
          "items": {
            "$ref": "#/definitions/serviceinterfaces.TimelogValidationApproval"
          },
          "type": "array"
        }
      },
      "title": "ValidationResponse",
      "type": "object"
    },
    "timer.DeleteRequest": {
      "description": "DeleteRequest contains the whether or not a timer should be hard deleted\nor soft deleted. Hard delete will remove the timer row from the DB and\nremove its timer intervals. Soft delete will just mark it as deleted.",
      "properties": {
        "hardDelete": {
          "type": "boolean"
        }
      },
      "title": "DeleteRequest",
      "type": "object"
    },
    "timer.Request": {
      "description": "Request contains information of a timer to be created or updated.",
      "properties": {
        "timer": {
          "$ref": "#/definitions/timer.Timer"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "timer.Response": {
      "description": "Response contains the information returned when sending a PUT/POST\nrequest to the timers endpoint, or GET request for a single item by ID",
      "properties": {
        "included": {
          "properties": {
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "timer": {
          "$ref": "#/definitions/view.Timer"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "timer.Timer": {
      "description": "Timer contains all the information returned from a timer.",
      "properties": {
        "description": {
          "type": "string"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isRunning": {
          "type": "boolean"
        },
        "projectId": {
          "type": "integer"
        },
        "seconds": {
          "description": "only valid for POST requests",
          "type": "integer"
        },
        "stopRunningTimers": {
          "type": "boolean"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "title": "Timer",
      "type": "object"
    },
    "timer.TimersResponse": {
      "description": "TimersResponse contains all the information returned when sending a GET\nrequest to the timers endpoint.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timers": {
          "items": {
            "$ref": "#/definitions/view.Timer"
          },
          "type": "array"
        }
      },
      "title": "TimersResponse",
      "type": "object"
    },
    "timesheet.MyTimesheetsResponse": {
      "description": "MyTimesheetsResponse contains timesheets list, includes and metadata.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "eventTypes": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyCalendarEventType"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "subtaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "timeApprovals": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TimeApproval"
              },
              "type": "object"
            },
            "timesheetCustomRows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TimesheetCustomRow"
              },
              "type": "object"
            },
            "unavailableTimes": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyUnavailableTime"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workingHourEntries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHourEntry"
              },
              "type": "object"
            },
            "workingHours": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHour"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timesheets": {
          "items": {
            "$ref": "#/definitions/view.MyTimesheet"
          },
          "type": "array"
        },
        "unavailableTimes": {
          "$ref": "#/definitions/view.UnavailableTimes"
        }
      },
      "title": "MyTimesheetsResponse",
      "type": "object"
    },
    "timesheet.MyTimesheetsTotalsResponse": {
      "description": "MyTimesheetsTotalsResponse contains timesheets list, includes and metadata.",
      "properties": {
        "myTimesheetsTotals": {
          "$ref": "#/definitions/view.MyTimesheetsTotals"
        }
      },
      "title": "MyTimesheetsTotalsResponse",
      "type": "object"
    },
    "timeutil.Date": {
      "description": "A Date represents a date (year, month, day).\n\nThis type does not include location information, and therefore does not\ndescribe a unique 24-hour timespan.",
      "properties": {
        "Day": {
          "description": "Day of the month, starting at 1.",
          "type": "integer"
        },
        "Month": {
          "description": "Month of the year (January = 1, ...).",
          "type": "integer"
        },
        "Year": {
          "description": "Year (e.g., 2014).",
          "type": "integer"
        }
      },
      "title": "Date",
      "type": "object"
    },
    "unbilled.ProjectMetricUnbilledResponse": {
      "description": "ProjectMetricUnbilledResponse contains information about a group of unbilled\ninvoices.",
      "properties": {
        "data": {
          "properties": {
            "value": {
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "title": "ProjectMetricUnbilledResponse",
      "type": "object"
    },
    "update.ProjectUpdatesResponse": {
      "description": "ProjectUpdatesResponse contains information about a group of updates.",
      "properties": {
        "included": {
          "properties": {
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "projectUpdates": {
          "items": {
            "$ref": "#/definitions/view.ProjectUpdate"
          },
          "type": "array"
        }
      },
      "title": "ProjectUpdatesResponse",
      "type": "object"
    },
    "utilization.Response": {
      "description": "Response contains information about a specific availability.",
      "properties": {
        "dashboardData": {
          "properties": {
            "jobRolesDashboard": {
              "items": {
                "$ref": "#/definitions/view.JobRolesDashboard"
              },
              "type": "array"
            },
            "teamsDashboard": {
              "items": {
                "$ref": "#/definitions/view.TeamsDashboard"
              },
              "type": "array"
            },
            "usersDashboard": {
              "items": {
                "$ref": "#/definitions/view.UsersDashboard"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "included": {
          "properties": {
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "utilization": {
          "$ref": "#/definitions/view.ReportUtilizationData"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "value.CustomFieldValue": {
      "description": "CustomFieldValue contains all the information returned from a customfield.",
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "currencySymbol": {
          "type": "string"
        },
        "customfieldId": {
          "type": "integer"
        },
        "urlTextToDisplay": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "title": "CustomFieldValue",
      "type": "object"
    },
    "value.EditCustomFieldValue": {
      "description": "EditCustomFieldValue contains all the information to update a project\ncustom field value.",
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "currencySymbol": {
          "type": "string"
        },
        "customfieldId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "urlTextToDisplay": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "title": "EditCustomFieldValue",
      "type": "object"
    },
    "value.ResponseIncluded": {
      "description": "ResponseIncluded is included in the response.",
      "properties": {
        "companies": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Company"
          },
          "type": "object"
        },
        "customfields": {
          "additionalProperties": {
            "$ref": "#/definitions/view.CustomField"
          },
          "type": "object"
        },
        "projects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectV205"
          },
          "type": "object"
        },
        "tasks": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TaskV205"
          },
          "type": "object"
        }
      },
      "title": "ResponseIncluded",
      "type": "object"
    },
    "value.bulkDeleteRequestCompany": {
      "properties": {
        "customfieldCompanyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "bulkDeleteRequestCompany",
      "type": "object"
    },
    "value.bulkDeleteRequestProject": {
      "properties": {
        "customfieldProjectIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "bulkDeleteRequestProject",
      "type": "object"
    },
    "value.bulkDeleteRequestTask": {
      "properties": {
        "customfieldTaskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "bulkDeleteRequestTask",
      "type": "object"
    },
    "value.bulkUpdateRequestCompany": {
      "properties": {
        "customfieldCompanies": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldCompaniesOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "bulkUpdateRequestCompany",
      "type": "object"
    },
    "value.bulkUpdateRequestProject": {
      "properties": {
        "customfieldProjects": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldProjectsOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "bulkUpdateRequestProject",
      "type": "object"
    },
    "value.bulkUpdateRequestTask": {
      "properties": {
        "customfieldTasks": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldTasksOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "bulkUpdateRequestTask",
      "type": "object"
    },
    "value.options": {
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        }
      },
      "title": "options",
      "type": "object"
    },
    "value.requestCompany": {
      "properties": {
        "customfieldCompany": {
          "$ref": "#/definitions/value.CustomFieldValue"
        },
        "customfieldCompanyOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "requestCompany",
      "type": "object"
    },
    "value.requestProject": {
      "properties": {
        "customfieldProject": {
          "$ref": "#/definitions/value.CustomFieldValue"
        },
        "customfieldProjectOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "requestProject",
      "type": "object"
    },
    "value.requestTask": {
      "properties": {
        "customfieldTask": {
          "$ref": "#/definitions/value.CustomFieldValue"
        },
        "customfieldTaskOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "title": "requestTask",
      "type": "object"
    },
    "value.responseCompany": {
      "properties": {
        "customfieldCompany": {
          "$ref": "#/definitions/view.CustomFieldValueCompany"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "responseCompany",
      "type": "object"
    },
    "value.responseProject": {
      "properties": {
        "customfieldProject": {
          "$ref": "#/definitions/view.CustomFieldValueProject"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "responseProject",
      "type": "object"
    },
    "value.responseTask": {
      "properties": {
        "customfieldTask": {
          "$ref": "#/definitions/view.CustomFieldValueTask"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "responseTask",
      "type": "object"
    },
    "value.valuesResponseCompany": {
      "properties": {
        "customfieldCompanies": {
          "items": {
            "$ref": "#/definitions/view.CustomFieldValueCompany"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "valuesResponseCompany",
      "type": "object"
    },
    "value.valuesResponseProject": {
      "properties": {
        "customfieldProjects": {
          "items": {
            "$ref": "#/definitions/view.CustomFieldValueProject"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "valuesResponseProject",
      "type": "object"
    },
    "value.valuesResponseTask": {
      "properties": {
        "customfieldTasks": {
          "items": {
            "$ref": "#/definitions/view.CustomFieldValueTask"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "title": "valuesResponseTask",
      "type": "object"
    },
    "view.ActivityLog": {
      "description": "ActivityLog contains all the information returned from a activityLog.",
      "properties": {
        "datetime": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "extraDescription": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "itemLink": {
          "type": "string"
        },
        "itemType": {
          "type": "string"
        },
        "latestType": {
          "type": "string"
        },
        "link": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "ActivityLog",
      "type": "object"
    },
    "view.Assignee": {
      "description": "Assignee contains assignee information.",
      "properties": {
        "decision": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isExternal": {
          "type": "boolean"
        },
        "role": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Assignee",
      "type": "object"
    },
    "view.Audit": {
      "description": "Audit represents the changes of a field.",
      "properties": {
        "after": {
          "type": "any"
        },
        "before": {
          "type": "any"
        },
        "field": {
          "type": "string"
        }
      },
      "title": "Audit",
      "type": "object"
    },
    "view.Banner": {
      "description": "Banner contains all the information returned from a form banner.",
      "properties": {
        "primaryColor": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        }
      },
      "title": "Banner",
      "type": "object"
    },
    "view.BillableInfo": {
      "description": "BillableInfo contains all the information related to the billable rates.",
      "properties": {
        "rate": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "title": "BillableInfo",
      "type": "object"
    },
    "view.Breakdown": {
      "description": "Breakdown contains a breakdown of time",
      "properties": {
        "daily": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Totals"
          },
          "type": "object"
        },
        "totals": {
          "$ref": "#/definitions/view.Totals"
        }
      },
      "title": "Breakdown",
      "type": "object"
    },
    "view.BudgetReportRow": {
      "description": "BudgetReportRow represents the structure of the budget report data.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billableTotal": {
          "type": "number"
        },
        "budgetAmountFinancial": {
          "type": "number"
        },
        "budgetAmountTime": {
          "type": "integer"
        },
        "budgetRemainingFinancial": {
          "type": "number"
        },
        "budgetRemainingTime": {
          "type": "integer"
        },
        "budgetStatus": {
          "type": "string"
        },
        "budgetUsedFinancial": {
          "type": "number"
        },
        "budgetUsedPercentage": {
          "type": "number"
        },
        "budgetUsedTime": {
          "type": "integer"
        },
        "childRowsCount": {
          "type": "integer"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "costBillableTimeBased": {
          "type": "number"
        },
        "costExpenses": {
          "type": "number"
        },
        "costNonBillableTimeBased": {
          "type": "number"
        },
        "costTimeBased": {
          "type": "number"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "profit": {
          "description": "scale only",
          "type": "number"
        },
        "profitPercentage": {
          "type": "number"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectBudgetId": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "revenueExpenses": {
          "type": "number"
        },
        "revenueTimeBased": {
          "type": "number"
        },
        "taskList": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskListBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskListBudgetId": {
          "type": "integer"
        },
        "totalCost": {
          "type": "number"
        }
      },
      "title": "BudgetReportRow",
      "type": "object"
    },
    "view.BudgetReportTotals": {
      "properties": {
        "activeBudgetCount": {
          "type": "integer"
        },
        "billableTime": {
          "type": "integer"
        },
        "billableTimeAverage": {
          "type": "integer"
        },
        "billableTotal": {
          "type": "number"
        },
        "billableTotalAverage": {
          "type": "number"
        },
        "budgetAmountFinancial": {
          "type": "number"
        },
        "budgetAmountFinancialAverage": {
          "type": "number"
        },
        "budgetAmountTime": {
          "description": "totals",
          "type": "integer"
        },
        "budgetAmountTimeAverage": {
          "description": "averages",
          "type": "integer"
        },
        "budgetRemainingFinancial": {
          "type": "number"
        },
        "budgetRemainingFinancialAverage": {
          "type": "number"
        },
        "budgetRemainingTime": {
          "type": "integer"
        },
        "budgetRemainingTimeAverage": {
          "type": "integer"
        },
        "budgetUsedFinancial": {
          "type": "number"
        },
        "budgetUsedFinancialAverage": {
          "type": "number"
        },
        "budgetUsedPercentage": {
          "type": "number"
        },
        "budgetUsedPercentageAverage": {
          "type": "number"
        },
        "budgetUsedTime": {
          "type": "integer"
        },
        "budgetUsedTimeAverage": {
          "type": "integer"
        },
        "companyCount": {
          "description": "counts",
          "type": "integer"
        },
        "completedBudgetCount": {
          "description": "budget statuses counts",
          "type": "integer"
        },
        "costBillableTimeBased": {
          "type": "number"
        },
        "costBillableTimeBasedAverage": {
          "type": "number"
        },
        "costExpenses": {
          "type": "number"
        },
        "costExpensesAverage": {
          "type": "number"
        },
        "costNonBillableTimeBased": {
          "type": "number"
        },
        "costNonBillableTimeBasedAverage": {
          "type": "number"
        },
        "costTimeBased": {
          "type": "number"
        },
        "costTimeBasedAverage": {
          "type": "number"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "nonBillableTimeAverage": {
          "type": "integer"
        },
        "profit": {
          "type": "number"
        },
        "profitAverage": {
          "type": "number"
        },
        "profitPercentage": {
          "type": "number"
        },
        "profitPercentageAverage": {
          "type": "number"
        },
        "projectBudgetCount": {
          "type": "integer"
        },
        "projectCount": {
          "type": "integer"
        },
        "revenueExpenses": {
          "type": "number"
        },
        "revenueExpensesAverage": {
          "type": "number"
        },
        "revenueTimeBased": {
          "type": "number"
        },
        "revenueTimeBasedAverage": {
          "type": "number"
        },
        "totalCost": {
          "type": "number"
        },
        "totalCostAverage": {
          "type": "number"
        },
        "upcomingBudgetCount": {
          "type": "integer"
        }
      },
      "title": "BudgetReportTotals",
      "type": "object"
    },
    "view.BudgetSummary": {
      "description": "BudgetSummary represents a company budget summary",
      "properties": {
        "totalCapacity": {
          "type": "integer"
        },
        "totalCapacityUsed": {
          "type": "integer"
        }
      },
      "title": "BudgetSummary",
      "type": "object"
    },
    "view.Calendar": {
      "description": "Calendar contains all the information returned from a calendar.",
      "properties": {
        "canViewPlanning": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "Calendar",
      "type": "object"
    },
    "view.CalendarAttendee": {
      "description": "CalendarAttendee contains all the information returned from an attendee.\n\nAPI spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/2aa5c551c666e29d59dc39eb0981fec92cf373db/calendar.yaml#L596-L613",
      "properties": {
        "canEdit": {
          "type": "boolean"
        },
        "isSelf": {
          "type": "boolean"
        },
        "reminders": {
          "items": {
            "$ref": "#/definitions/view.CalendarAttendeeReminder"
          },
          "type": "array"
        },
        "status": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.CalendarUser"
        }
      },
      "title": "CalendarAttendee",
      "type": "object"
    },
    "view.CalendarAttendeeReminder": {
      "description": "CalendarAttendeeReminder contains all the information returned from a reminder.\n\nAPI spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/6eabeaeb7d3a0c5eaf6ef38a1541c07286f26cee/calendar.yaml#L691-L706",
      "properties": {
        "method": {
          "type": "string"
        },
        "minute": {
          "type": "integer"
        }
      },
      "title": "CalendarAttendeeReminder",
      "type": "object"
    },
    "view.CalendarEvent": {
      "description": "CalendarEvent contains all the information returned from an event.\n\nAPI spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/6eabeaeb7d3a0c5eaf6ef38a1541c07286f26cee/calendar.yaml#L282-L408",
      "properties": {
        "allDay": {
          "type": "boolean"
        },
        "attendees": {
          "items": {
            "$ref": "#/definitions/view.CalendarAttendee"
          },
          "type": "array"
        },
        "attendeesOmitted": {
          "type": "boolean"
        },
        "calOwnerCanEdit": {
          "type": "boolean"
        },
        "calendar": {
          "$ref": "#/definitions/view.Relationship"
        },
        "color": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "description": {
          "type": "string"
        },
        "end": {
          "$ref": "#/definitions/view.CalendarEventDate"
        },
        "eventCreator": {
          "$ref": "#/definitions/view.CalendarUser"
        },
        "exDate": {
          "type": "string"
        },
        "guestsCanInviteOthers": {
          "type": "boolean"
        },
        "guestsCanModify": {
          "type": "boolean"
        },
        "guestsCanSeeOtherGuests": {
          "type": "boolean"
        },
        "htmlLink": {
          "type": "string"
        },
        "iCalUID": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isModified": {
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "mappedTaskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "organizer": {
          "$ref": "#/definitions/view.CalendarUser"
        },
        "originalStartTime": {
          "$ref": "#/definitions/view.CalendarEventDate"
        },
        "position": {
          "type": "integer"
        },
        "recurrence": {
          "type": "string"
        },
        "recurringEventId": {
          "type": "integer"
        },
        "start": {
          "$ref": "#/definitions/view.CalendarEventDate"
        },
        "status": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "timeblock": {
          "$ref": "#/definitions/view.Timeblock"
        },
        "timelog": {
          "$ref": "#/definitions/view.Relationship"
        },
        "transparency": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "videoCallLink": {
          "type": "string"
        },
        "visibility": {
          "type": "string"
        }
      },
      "title": "CalendarEvent",
      "type": "object"
    },
    "view.CalendarEventDate": {
      "description": "CalendarEventDate is a date in the CalendarEvent.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "title": "CalendarEventDate",
      "type": "object"
    },
    "view.CalendarHolidayDate": {
      "description": "CalendarHolidayDate is a date in the CalendarHolidayEvent.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "title": "CalendarHolidayDate",
      "type": "object"
    },
    "view.CalendarHolidayEvent": {
      "description": "CalendarHolidayEvent contains all the information returned from an event with holiday group members.",
      "properties": {
        "allDay": {
          "type": "boolean"
        },
        "attendees": {
          "items": {
            "$ref": "#/definitions/view.CalendarAttendee"
          },
          "type": "array"
        },
        "attendeesOmitted": {
          "type": "boolean"
        },
        "calOwnerCanEdit": {
          "type": "boolean"
        },
        "calendar": {
          "$ref": "#/definitions/view.Relationship"
        },
        "color": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "description": {
          "type": "string"
        },
        "end": {
          "$ref": "#/definitions/view.CalendarHolidayDate"
        },
        "eventCreator": {
          "$ref": "#/definitions/view.CalendarUser"
        },
        "exDate": {
          "type": "string"
        },
        "guestsCanInviteOthers": {
          "type": "boolean"
        },
        "guestsCanModify": {
          "type": "boolean"
        },
        "guestsCanSeeOtherGuests": {
          "type": "boolean"
        },
        "holidayGroupMembers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "holidayGroupName": {
          "type": "string"
        },
        "htmlLink": {
          "type": "string"
        },
        "iCalUID": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isModified": {
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "mappedTaskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "organizer": {
          "$ref": "#/definitions/view.CalendarUser"
        },
        "originalStartTime": {
          "$ref": "#/definitions/view.CalendarEventDate"
        },
        "position": {
          "type": "integer"
        },
        "recurrence": {
          "type": "string"
        },
        "recurringEventId": {
          "type": "integer"
        },
        "start": {
          "$ref": "#/definitions/view.CalendarHolidayDate"
        },
        "status": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "timeblock": {
          "$ref": "#/definitions/view.Timeblock"
        },
        "timelog": {
          "$ref": "#/definitions/view.Relationship"
        },
        "transparency": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "videoCallLink": {
          "type": "string"
        },
        "visibility": {
          "type": "string"
        }
      },
      "title": "CalendarHolidayEvent",
      "type": "object"
    },
    "view.CalendarUser": {
      "description": "CalendarUser contains all the information returned from an user.\n\nAPI spec:\nhttps://github.com/Teamwork/calendar-api-spec/blob/2aa5c551c666e29d59dc39eb0981fec92cf373db/calendar.yaml#L596-L613",
      "properties": {
        "email": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "CalendarUser",
      "type": "object"
    },
    "view.CategoryTotals": {
      "description": "CategoryTotals contains all the category totals.",
      "properties": {
        "categorizedItems": {
          "type": "integer"
        },
        "uncategorizedItems": {
          "type": "integer"
        }
      },
      "title": "CategoryTotals",
      "type": "object"
    },
    "view.ClientRate": {
      "description": "ClientRate is the rate assigned to a client, it's based on the existing role rates, but being able to set a specific\nrate for a client.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "role": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "ClientRate",
      "type": "object"
    },
    "view.Comment": {
      "description": "Comment contains all the information returned from a comment.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "object": {
          "$ref": "#/definitions/view.Relationship"
        },
        "objectId": {
          "type": "integer"
        },
        "objectType": {
          "type": "string"
        },
        "postedAt": {
          "type": "string"
        },
        "postedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "title": {
          "type": "string"
        }
      },
      "title": "Comment",
      "type": "object"
    },
    "view.Company": {
      "description": "Company contains all the information returned from a company.",
      "properties": {
        "accounts": {
          "type": "integer"
        },
        "addressOne": {
          "type": "string"
        },
        "addressTwo": {
          "type": "string"
        },
        "budgetDistribution": {
          "items": {
            "$ref": "#/definitions/entity.ProjectBudgetRange"
          },
          "type": "array"
        },
        "canSeePrivate": {
          "type": "boolean"
        },
        "cid": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "clientManagedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "clients": {
          "type": "integer"
        },
        "collaborators": {
          "type": "integer"
        },
        "companyDomains": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "companyNameUrl": {
          "type": "string"
        },
        "companyUpdate": {
          "$ref": "#/definitions/view.Relationship"
        },
        "contacts": {
          "type": "integer"
        },
        "countryCode": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "currency": {
          "$ref": "#/definitions/view.Relationship"
        },
        "emailOne": {
          "type": "string"
        },
        "emailThree": {
          "type": "string"
        },
        "emailTwo": {
          "type": "string"
        },
        "fax": {
          "type": "string"
        },
        "financialBudgetSummary": {
          "$ref": "#/definitions/view.BudgetSummary"
        },
        "id": {
          "type": "integer"
        },
        "industry": {
          "$ref": "#/definitions/view.Relationship"
        },
        "industryId": {
          "type": "integer"
        },
        "isOwner": {
          "type": "boolean"
        },
        "logoUrl": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "privateNotes": {
          "type": "string"
        },
        "privateNotesText": {
          "type": "string"
        },
        "profileText": {
          "type": "string"
        },
        "profitability": {
          "$ref": "#/definitions/view.ProfitDetails"
        },
        "rates": {
          "items": {
            "$ref": "#/definitions/view.ClientRate"
          },
          "type": "array"
        },
        "state": {
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/view.CompanyStats"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "timeBudgetSummary": {
          "$ref": "#/definitions/view.BudgetSummary"
        },
        "updatedAt": {
          "type": "string"
        },
        "website": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      },
      "title": "Company",
      "type": "object"
    },
    "view.CompanyDomain": {
      "description": "CompanyDomain contains all the information returned from a company domain.",
      "properties": {
        "companyId": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedByUser": {
          "type": "integer"
        },
        "domain": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        }
      },
      "title": "CompanyDomain",
      "type": "object"
    },
    "view.CompanyStats": {
      "description": "CompanyStats tracks a companies project and task counts",
      "properties": {
        "projectCount": {
          "type": "integer"
        },
        "taskCompleteCount": {
          "type": "integer"
        },
        "taskCount": {
          "type": "integer"
        },
        "unreadEmailCount": {
          "type": "integer"
        }
      },
      "title": "CompanyStats",
      "type": "object"
    },
    "view.CompanyUpdate": {
      "description": "CompanyUpdate represents a company update",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "health": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "text": {
          "type": "string"
        }
      },
      "title": "CompanyUpdate",
      "type": "object"
    },
    "view.Container": {
      "description": "Container contains all the information returned from a container.",
      "properties": {
        "appRoute": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isVisible": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "ownerId": {
          "type": "integer"
        },
        "permissions": {
          "$ref": "#/definitions/view.ContainerPermissions"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "widgets": {
          "items": {
            "$ref": "#/definitions/view.ContainerWidget"
          },
          "type": "array"
        }
      },
      "title": "Container",
      "type": "object"
    },
    "view.ContainerBinding": {
      "description": "ContainerBinding is the binding details included in a container response.",
      "properties": {
        "entity": {
          "type": "string"
        },
        "entityId": {
          "type": "integer"
        }
      },
      "title": "ContainerBinding",
      "type": "object"
    },
    "view.ContainerPermissions": {
      "description": "ContainerPermissions is the permissions block included in a container response.",
      "properties": {
        "binding": {
          "$ref": "#/definitions/view.ContainerBinding"
        }
      },
      "title": "ContainerPermissions",
      "type": "object"
    },
    "view.ContainerWidget": {
      "description": "ContainerWidget contains all the information returned from a widget.",
      "properties": {
        "config": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "height": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "posX": {
          "type": "integer"
        },
        "poxY": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "width": {
          "type": "integer"
        }
      },
      "title": "ContainerWidget",
      "type": "object"
    },
    "view.Content": {
      "description": "Content contains all the information returned from a form token.",
      "properties": {
        "banner": {
          "$ref": "#/definitions/view.Banner"
        },
        "definition": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "logo": {
          "$ref": "#/definitions/view.Logo"
        },
        "name": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "version": {
          "type": "integer"
        }
      },
      "title": "Content",
      "type": "object"
    },
    "view.CostInfo": {
      "description": "CostInfo contains all the information related to the cost rates.",
      "properties": {
        "originalValue": {
          "$ref": "#/definitions/view.OriginalValue"
        },
        "rate": {
          "description": "todo: maybe also use Money pattern here, but needs frontend update",
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "title": "CostInfo",
      "type": "object"
    },
    "view.Country": {
      "description": "Country represents all the information returned from a country.",
      "properties": {
        "code": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "eu": {
          "type": "boolean"
        },
        "phoneCode": {
          "type": "string"
        },
        "vatName": {
          "type": "string"
        },
        "vatPercent": {
          "type": "integer"
        }
      },
      "title": "Country",
      "type": "object"
    },
    "view.Currency": {
      "description": "Currency representation",
      "properties": {
        "code": {
          "type": "string"
        },
        "decimalPoints": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "symbol": {
          "type": "string"
        }
      },
      "title": "Currency",
      "type": "object"
    },
    "view.CustomField": {
      "description": "CustomField contains all the information returned from a custom field.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "currencyCode": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "entity": {
          "type": "string"
        },
        "formula": {
          "type": "string"
        },
        "groupId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "options": {
          "type": "any"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "required": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "unitId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "updatedByUserId": {
          "type": "integer"
        },
        "visibilities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "title": "CustomField",
      "type": "object"
    },
    "view.CustomFieldValueCompany": {
      "description": "CustomFieldValueCompany is a company custom field value.",
      "properties": {
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "countryCode": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "currencySymbol": {
          "type": "string"
        },
        "customfield": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customfieldId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "urlTextToDisplay": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "title": "CustomFieldValueCompany",
      "type": "object"
    },
    "view.CustomFieldValueProject": {
      "description": "CustomFieldValueProject is a project custom field value.",
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "currencySymbol": {
          "type": "string"
        },
        "customfield": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customfieldId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "urlTextToDisplay": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "title": "CustomFieldValueProject",
      "type": "object"
    },
    "view.CustomFieldValueTask": {
      "description": "CustomFieldValueTask is a task custom field value.",
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "currencySymbol": {
          "type": "string"
        },
        "customfield": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customfieldId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskId": {
          "type": "integer"
        },
        "urlTextToDisplay": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "title": "CustomFieldValueTask",
      "type": "object"
    },
    "view.CustomItem": {
      "description": "CustomItem contains all the information returned from a customitem.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "displayName": {
          "type": "string"
        },
        "fields": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "labelPlural": {
          "type": "string"
        },
        "labelSingular": {
          "type": "string"
        },
        "relations": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "sections": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "views": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "CustomItem",
      "type": "object"
    },
    "view.CustomItemField": {
      "description": "CustomItemField contains all the information returned from a field.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customItem": {
          "$ref": "#/definitions/view.Relationship"
        },
        "definition": {
          "type": "string"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "displayName": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "options": {
          "items": {
            "$ref": "#/definitions/view.CustomItemFieldOption"
          },
          "type": "array"
        },
        "state": {
          "type": "string"
        },
        "twId": {
          "type": "string"
        },
        "twType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "CustomItemField",
      "type": "object"
    },
    "view.CustomItemFieldOption": {
      "description": "CustomItemFieldOption contains all the information returned from a field option.",
      "properties": {
        "color": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "isDefault": {
          "type": "boolean"
        },
        "label": {
          "type": "string"
        },
        "twId": {
          "type": "string"
        }
      },
      "title": "CustomItemFieldOption",
      "type": "object"
    },
    "view.CustomItemRecord": {
      "description": "CustomItemRecord contains all the information returned from a custom item record.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customItem": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "displayOrder": {
          "type": "number"
        },
        "fieldValues": {
          "type": "object"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "parentId": {
          "type": "integer"
        },
        "section": {
          "$ref": "#/definitions/view.Relationship"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "CustomItemRecord",
      "type": "object"
    },
    "view.CustomItemSection": {
      "description": "CustomItemSection contains all the information returned from a custom item section.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customItem": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "displayName": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "CustomItemSection",
      "type": "object"
    },
    "view.CustomItemView": {
      "description": "CustomItemView contains all the information returned from a custom item view.",
      "properties": {
        "configuration": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customItem": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "displayName": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "viewTypeId": {
          "type": "integer"
        }
      },
      "title": "CustomItemView",
      "type": "object"
    },
    "view.DashboardData": {
      "description": "DashboardData stores the user utilization on a specific period.",
      "properties": {
        "availableMinutes": {
          "type": "integer"
        },
        "billableUtilization": {
          "type": "number"
        },
        "estimatedBillableUtilization": {
          "type": "number"
        },
        "estimatedUtilization": {
          "type": "number"
        },
        "totalWorkingMinutes": {
          "type": "integer"
        },
        "unavailableMinutes": {
          "type": "integer"
        }
      },
      "title": "DashboardData",
      "type": "object"
    },
    "view.DataSummary": {
      "description": "DataSummary contains all the user information for specific dates.",
      "properties": {
        "dates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.UserWorkload"
          },
          "type": "object"
        },
        "jobRoleIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "jobRoles": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "skillIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "skills": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "DataSummary",
      "type": "object"
    },
    "view.DateRange": {
      "description": "DateRange represents an inclusive start/end date range.",
      "properties": {
        "endDate": {
          "type": "string"
        },
        "startDate": {
          "type": "string"
        }
      },
      "title": "DateRange",
      "type": "object"
    },
    "view.EffectiveUserRate": {
      "description": "EffectiveUserRate is the users effective rate",
      "properties": {
        "effectiveRate": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "EffectiveUserRate",
      "type": "object"
    },
    "view.Error": {
      "description": "Error describes an API error.",
      "properties": {
        "code": {
          "description": "Code is an application-specific error code.",
          "type": "string"
        },
        "detail": {
          "description": "Detail is a human-readable explanation specific to this occurrence of the\nproblem.",
          "type": "string"
        },
        "id": {
          "description": "ID is a reference for this exact instance of the error.",
          "type": "string"
        },
        "meta": {
          "description": "Meta contains tags that are useful to detect specific issues.",
          "type": "object"
        },
        "title": {
          "description": "Title is a short, human-readable summary of the problem.",
          "type": "string"
        }
      },
      "title": "Error",
      "type": "object"
    },
    "view.ErrorResponse": {
      "description": "ErrorResponse defines how []Error should be marshaled to JSON.",
      "properties": {
        "errors": {
          "items": {
            "$ref": "#/definitions/view.Error"
          },
          "type": "array"
        }
      },
      "title": "ErrorResponse",
      "type": "object"
    },
    "view.ExchangeRate": {
      "description": "ExchangeRate is a struct that contains the exchange rate information",
      "properties": {
        "date": {
          "format": "date",
          "type": "string"
        },
        "fromCurrency": {
          "$ref": "#/definitions/view.Relationship"
        },
        "rate": {
          "type": "number"
        },
        "toCurrency": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "ExchangeRate",
      "type": "object"
    },
    "view.Feature": {
      "description": "Feature contains all the information returned from a feature.",
      "properties": {
        "endAt": {
          "type": "string"
        },
        "isBeta": {
          "type": "boolean"
        },
        "key": {
          "type": "string"
        },
        "scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "startAt": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "title": "Feature",
      "type": "object"
    },
    "view.FileversionV205": {
      "description": "FileversionV205 contains all the information returned from a fileversion.",
      "properties": {
        "commentsCount": {
          "type": "integer"
        },
        "commentsCountRead": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "file": {
          "$ref": "#/definitions/view.Relationship"
        },
        "fileId": {
          "type": "integer"
        },
        "fileVersionId": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "originalName": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "reactions": {
          "$ref": "#/definitions/view.ReactionsForObject"
        },
        "size": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "uploadedAt": {
          "type": "string"
        },
        "uploadedBy": {
          "type": "integer"
        },
        "versionNo": {
          "type": "integer"
        }
      },
      "title": "FileversionV205",
      "type": "object"
    },
    "view.FinancialTotals": {
      "description": "FinancialTotals contains all the information returned for financial totals.",
      "properties": {
        "totalCost": {
          "type": "number"
        },
        "totalCostBillable": {
          "type": "number"
        },
        "totalCostBilled": {
          "type": "number"
        }
      },
      "title": "FinancialTotals",
      "type": "object"
    },
    "view.Form": {
      "description": "Form contains all the information returned from a form.",
      "properties": {
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/view.Content"
        },
        "createFormTask": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "destinationObject": {
          "$ref": "#/definitions/view.Relationship"
        },
        "hostObject": {
          "$ref": "#/definitions/view.Relationship"
        },
        "id": {
          "type": "integer"
        },
        "installation": {
          "$ref": "#/definitions/view.Relationship"
        },
        "isShared": {
          "type": "boolean"
        },
        "notifyTaskAssignees": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "responseEmailFieldId": {
          "type": "string"
        },
        "showProgressBar": {
          "type": "boolean"
        },
        "state": {
          "type": "string"
        },
        "submitButtonText": {
          "type": "string"
        },
        "taskTitleFieldId": {
          "type": "string"
        },
        "token": {
          "$ref": "#/definitions/view.Token"
        },
        "totalSubmissions": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Form",
      "type": "object"
    },
    "view.IncludedProject": {
      "description": "IncludedProject is a sideloaded project",
      "title": "IncludedProject",
      "type": "object"
    },
    "view.IncludedTask": {
      "description": "IncludedTask is a sideloaded task.",
      "title": "IncludedTask",
      "type": "object"
    },
    "view.Industry": {
      "description": "Industry contains all the information returned from an industry.",
      "properties": {
        "displayOrder": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "industryCategory": {
          "$ref": "#/definitions/view.Relationship"
        },
        "industryCategoryId": {
          "type": "integer"
        },
        "isActive": {
          "type": "boolean"
        },
        "isPublished": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "Industry",
      "type": "object"
    },
    "view.Integrations": {
      "description": "Integrations contains project's integrations information.",
      "properties": {
        "canAccessBox": {
          "type": "boolean"
        },
        "canAccessDropbox": {
          "type": "boolean"
        },
        "canAccessGoogleDocs": {
          "type": "boolean"
        },
        "canAccessOneDrive": {
          "type": "boolean"
        },
        "canAccessOneDriveBusiness": {
          "type": "boolean"
        },
        "canAccessSharePoint": {
          "type": "boolean"
        },
        "projectId": {
          "type": "integer"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Integrations",
      "type": "object"
    },
    "view.Invoice": {
      "description": "Invoice contains all the information returned from an invoice.",
      "properties": {
        "PONumber": {
          "type": "string"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "companyName": {
          "type": "string"
        },
        "createdByUserFirstName": {
          "type": "string"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "createdByUserLastName": {
          "type": "string"
        },
        "currency": {
          "$ref": "#/definitions/view.Relationship"
        },
        "currencyCode": {
          "type": "string"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateUpdated": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "displayDate": {
          "format": "date",
          "type": "string"
        },
        "dueDate": {
          "format": "date",
          "type": "string"
        },
        "editedByUserFirstName": {
          "type": "string"
        },
        "editedByUserLastName": {
          "type": "string"
        },
        "expenses": {
          "items": {
            "$ref": "#/definitions/view.InvoiceExpense"
          },
          "type": "array"
        },
        "exportedByUserFirstName": {
          "type": "string"
        },
        "exportedByUserId": {
          "type": "integer"
        },
        "exportedByUserLastName": {
          "type": "string"
        },
        "exportedDate": {
          "type": "string"
        },
        "exportedTo": {
          "type": "any"
        },
        "fixedCost": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "lineItems": {
          "items": {
            "$ref": "#/definitions/view.LineItem"
          },
          "type": "array"
        },
        "number": {
          "type": "string"
        },
        "pricing": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "projectName": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "totalBillable": {
          "type": "number"
        },
        "totalExpenses": {
          "type": "number"
        },
        "totalTime": {
          "type": "integer"
        },
        "totalTimeBillable": {
          "type": "number"
        },
        "totalTimeDecimal": {
          "type": "number"
        },
        "updatedByUserId": {
          "type": "integer"
        }
      },
      "title": "Invoice",
      "type": "object"
    },
    "view.InvoiceExpense": {
      "description": "InvoiceExpense represents the view for an expense",
      "properties": {
        "assigneeDescription": {
          "type": "string"
        },
        "cost": {
          "type": "number"
        },
        "count": {
          "type": "number"
        },
        "createdByUserFirstName": {
          "type": "string"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "createdByUserLastName": {
          "type": "string"
        },
        "date": {
          "format": "date",
          "type": "string"
        },
        "dateDescription": {
          "type": "string"
        },
        "datetime": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "invoiceId": {
          "type": "integer"
        },
        "isSummarized": {
          "type": "boolean"
        },
        "lineItemDescription": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "summarizationKey": {
          "type": "string"
        }
      },
      "title": "InvoiceExpense",
      "type": "object"
    },
    "view.JobRole": {
      "description": "JobRole contains all the information returned from a job role.",
      "properties": {
        "billableRatesByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/view.RoleBillableRate"
          },
          "type": "object"
        },
        "costRatesByCurrencyId": {
          "additionalProperties": {
            "$ref": "#/definitions/view.RoleCostRate"
          },
          "type": "object"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedByUser": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isActive": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "placeholderCount": {
          "type": "integer"
        },
        "primaryUsers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "JobRole",
      "type": "object"
    },
    "view.JobRolesDashboard": {
      "description": "JobRolesDashboard contains all the information returned from a utilization.",
      "properties": {
        "data": {
          "$ref": "#/definitions/view.DashboardData"
        },
        "jobRole": {
          "$ref": "#/definitions/view.Relationship"
        },
        "jobRoleId": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "JobRolesDashboard",
      "type": "object"
    },
    "view.LegacyCalendarEvent": {
      "description": "LegacyCalendarEvent contains all the information returned from a calendar event.",
      "properties": {
        "additionalProperties": {
          "type": "string"
        },
        "allDay": {
          "type": "boolean"
        },
        "attendeesCanEdit": {
          "type": "boolean"
        },
        "attendingUserIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "attendingUsers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "createdDateTime": {
          "type": "string"
        },
        "currentUserAssociationType": {
          "type": "string"
        },
        "dateDeleted": {
          "type": "string"
        },
        "dateLastUpdated": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "location": {
          "type": "string"
        },
        "monthlyRepeatType": {
          "type": "string"
        },
        "ownedBy": {
          "type": "integer"
        },
        "ownerUserId": {
          "type": "integer"
        },
        "privacyType": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "projectUsersCanEdit": {
          "type": "boolean"
        },
        "sequence": {
          "$ref": "#/definitions/view.Relationship"
        },
        "sequenceId": {
          "type": "integer"
        },
        "showAsBusy": {
          "type": "boolean"
        },
        "startDate": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/view.Relationship"
        },
        "typeId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "updatedByUserId": {
          "type": "integer"
        }
      },
      "title": "LegacyCalendarEvent",
      "type": "object"
    },
    "view.LegacyCalendarEventType": {
      "description": "LegacyCalendarEventType contains all the information returned from a calendar event\ntype.",
      "properties": {
        "color": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "unavailable": {
          "type": "boolean"
        }
      },
      "title": "LegacyCalendarEventType",
      "type": "object"
    },
    "view.LegacyUnavailableTime": {
      "description": "LegacyUnavailableTime contains all the information returned for an unavailable\ntime.",
      "properties": {
        "allDay": {
          "type": "boolean"
        },
        "attendingUsers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "durationMinutes": {
          "type": "integer"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "hoursPerDay": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "meta": {
          "type": "object"
        },
        "ownedBy": {
          "type": "integer"
        },
        "startDate": {
          "format": "date",
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "title": "LegacyUnavailableTime",
      "type": "object"
    },
    "view.LineItem": {
      "description": "LineItem represents the view for a line item",
      "properties": {
        "assigneeDescription": {
          "type": "string"
        },
        "billable": {
          "type": "boolean"
        },
        "billableTotal": {
          "type": "number"
        },
        "date": {
          "type": "string"
        },
        "dateDescription": {
          "type": "string"
        },
        "dateLoggedUTC": {
          "type": "string"
        },
        "decimalHours": {
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "hours": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "invoiceRate": {
          "type": "number"
        },
        "isSummarized": {
          "type": "boolean"
        },
        "lineItemDescription": {
          "type": "string"
        },
        "lineItemTitle": {
          "type": "string"
        },
        "minutes": {
          "type": "integer"
        },
        "summarizationKey": {
          "type": "string"
        },
        "taskDescription": {
          "type": "string"
        },
        "taskId": {
          "type": "integer"
        },
        "taskListId": {
          "type": "integer"
        },
        "taskListName": {
          "type": "string"
        },
        "taskName": {
          "type": "string"
        },
        "totalMinutes": {
          "type": "integer"
        },
        "userFirstName": {
          "type": "string"
        },
        "userFullName": {
          "type": "string"
        },
        "userId": {
          "type": "integer"
        },
        "userLastName": {
          "type": "string"
        }
      },
      "title": "LineItem",
      "type": "object"
    },
    "view.LinkItem": {
      "description": "LinkItem contains all the information returned from a link item.",
      "properties": {
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "categoryId": {
          "type": "integer"
        },
        "code": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "forceNewWindow": {
          "type": "integer"
        },
        "height": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "provider": {
          "type": "string"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "width": {
          "type": "integer"
        }
      },
      "title": "LinkItem",
      "type": "object"
    },
    "view.Lockdown": {
      "description": "Lockdown contains all the information returned from a lockdown.",
      "properties": {
        "grantAccessTo": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "id": {
          "type": "integer"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userID": {
          "type": "integer"
        }
      },
      "title": "Lockdown",
      "type": "object"
    },
    "view.Logo": {
      "description": "Logo contains all the information returned from a form custom logo.",
      "properties": {
        "url": {
          "type": "string"
        }
      },
      "title": "Logo",
      "type": "object"
    },
    "view.Message": {
      "description": "Message contains all the information returned from a project message.",
      "properties": {
        "attachments": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "author": {
          "$ref": "#/definitions/view.Relationship"
        },
        "body": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "lastReply": {
          "$ref": "#/definitions/view.Relationship"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "message": {
          "$ref": "#/definitions/view.Relationship"
        },
        "meta": {
          "$ref": "#/definitions/view.MessageReplyMeta"
        },
        "peopleNotifiedCount": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "replyId": {
          "type": "integer"
        },
        "replyStatus": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "Message",
      "type": "object"
    },
    "view.MessageReply": {
      "description": "MessageReply contains all the information returned from a project message.",
      "properties": {
        "attachments": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "author": {
          "$ref": "#/definitions/view.Relationship"
        },
        "body": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "message": {
          "$ref": "#/definitions/view.Relationship"
        },
        "meta": {
          "$ref": "#/definitions/view.MessageReplyMeta"
        },
        "peopleNotifiedCount": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "MessageReply",
      "type": "object"
    },
    "view.MessageReplyMeta": {
      "description": "MessageReplyMeta is the message reply meta.",
      "properties": {
        "isRead": {
          "type": "boolean"
        },
        "permissions": {
          "properties": {
            "canEdit": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "MessageReplyMeta",
      "type": "object"
    },
    "view.Meta": {
      "description": "Meta represents the Unified API meta object.",
      "properties": {
        "averageSpend": {
          "type": "integer"
        },
        "data": {
          "type": "object"
        },
        "limit": {
          "type": "integer"
        },
        "nextCursor": {
          "type": "string"
        },
        "page": {
          "$ref": "#/definitions/view.MetaPage"
        },
        "prevCursor": {
          "type": "string"
        },
        "totalCapacity": {
          "type": "integer"
        }
      },
      "title": "Meta",
      "type": "object"
    },
    "view.MetaPage": {
      "description": "MetaPage represents the Unified API page meta object.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "hasMore": {
          "type": "boolean"
        },
        "pageOffset": {
          "type": "integer"
        },
        "pageSize": {
          "type": "integer"
        }
      },
      "title": "MetaPage",
      "type": "object"
    },
    "view.Milestone": {
      "description": "Milestone contains all the information returned from a milestone.",
      "properties": {
        "canComplete": {
          "type": "boolean"
        },
        "canEdit": {
          "description": "permissions",
          "type": "boolean"
        },
        "changeFollowerIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "changeFollowers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "commentFollowerIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "commentFollowers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "commentsCount": {
          "type": "integer"
        },
        "completed": {
          "type": "boolean"
        },
        "completedBy": {
          "type": "integer"
        },
        "completedOn": {
          "type": "string"
        },
        "completerId": {
          "type": "integer"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdOn": {
          "type": "string"
        },
        "creatorUserId": {
          "type": "integer"
        },
        "deadline": {
          "type": "string"
        },
        "deletedOn": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "descriptionHTML": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isDeleted": {
          "type": "boolean"
        },
        "lastChangedOn": {
          "type": "string"
        },
        "latestUpdates": {
          "items": {
            "$ref": "#/definitions/view.Audit"
          },
          "type": "array"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "lockdownId": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "numCommentsRead": {
          "type": "integer"
        },
        "originalDueDate": {
          "type": "string"
        },
        "percentageComplete": {
          "type": "integer"
        },
        "percentageTasksCompleted": {
          "type": "integer"
        },
        "private": {
          "type": "boolean"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "reminder": {
          "type": "boolean"
        },
        "responsibleParties": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "responsiblePartyIds": {
          "description": "optional fields that are returned only when querying a milestone endpoint",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "status": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "tasklistIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tasklists": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "updatedBy": {
          "type": "integer"
        },
        "userFollowingChanges": {
          "type": "boolean"
        },
        "userFollowingComments": {
          "type": "boolean"
        },
        "userFollowingComplete": {
          "type": "boolean"
        }
      },
      "title": "Milestone",
      "type": "object"
    },
    "view.Money": {
      "description": "Money is a struct that contains the amount and currency",
      "properties": {
        "amount": {
          "type": "number"
        },
        "currency": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Money",
      "type": "object"
    },
    "view.MyTimesheet": {
      "description": "MyTimesheet contains api response information for a timesheet",
      "properties": {
        "customRow": {
          "$ref": "#/definitions/view.Relationship"
        },
        "dates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.MyTimesheetDateSummary"
          },
          "type": "object"
        },
        "entity": {
          "$ref": "#/definitions/view.Relationship"
        },
        "isCustomRow": {
          "type": "boolean"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "MyTimesheet",
      "type": "object"
    },
    "view.MyTimesheetDateSummary": {
      "description": "MyTimesheetDateSummary contains total minutes and timelog ids for a date",
      "properties": {
        "approval": {
          "$ref": "#/definitions/view.TimesheetDateApproval"
        },
        "timelogs": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "totalMinutes": {
          "type": "integer"
        }
      },
      "title": "MyTimesheetDateSummary",
      "type": "object"
    },
    "view.MyTimesheetsTotals": {
      "description": "MyTimesheetsTotals contains api response information for a timesheet totals",
      "properties": {
        "breakdown": {
          "$ref": "#/definitions/view.Breakdown"
        },
        "dailyTotals": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "MyTimesheetsTotals",
      "type": "object"
    },
    "view.Notebook": {
      "description": "Notebook contains all the information returned from a notebook.",
      "properties": {
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "categoryId": {
          "type": "integer"
        },
        "changeFollowers": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "commentFollowers": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "commentsCount": {
          "type": "integer"
        },
        "contentHTML": {
          "type": "string"
        },
        "contents": {
          "description": "can be optionally hidden on lists",
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserID": {
          "type": "integer"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateDeleted": {
          "type": "string"
        },
        "dateUpdated": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserID": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isFullWidth": {
          "type": "boolean"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "latestVersionNo": {
          "type": "integer"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "lockdownId": {
          "type": "integer"
        },
        "locked": {
          "type": "boolean"
        },
        "lockedAt": {
          "type": "string"
        },
        "lockedBy": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "notebookVersion": {
          "$ref": "#/definitions/view.Relationship"
        },
        "notebookVersionCreatedDateTime": {
          "type": "string"
        },
        "notebookVersionID": {
          "type": "integer"
        },
        "notebookVersionUpdatedDateTime": {
          "type": "string"
        },
        "privacy": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "readCommentsCount": {
          "type": "integer"
        },
        "secureContent": {
          "type": "boolean"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "updatedByUserID": {
          "type": "integer"
        },
        "userFollowingChanges": {
          "type": "boolean"
        },
        "userFollowingComments": {
          "type": "boolean"
        },
        "versionCount": {
          "type": "integer"
        }
      },
      "title": "Notebook",
      "type": "object"
    },
    "view.NotebookCategory": {
      "description": "NotebookCategory contains all the information returned from a notebook category.",
      "properties": {
        "color": {
          "type": "string"
        },
        "elementsCount": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "parent": {
          "$ref": "#/definitions/view.Relationship"
        },
        "parentId": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "title": "NotebookCategory",
      "type": "object"
    },
    "view.NotebookVersion": {
      "description": "NotebookVersion contains all the information returned from a notebook version.",
      "properties": {
        "contentHTML": {
          "type": "string"
        },
        "contents": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserID": {
          "type": "integer"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateUpdated": {
          "type": "string"
        },
        "notebook": {
          "$ref": "#/definitions/view.Relationship"
        },
        "notebookId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "versionId": {
          "type": "integer"
        },
        "versionNumber": {
          "type": "integer"
        }
      },
      "title": "NotebookVersion",
      "type": "object"
    },
    "view.Notification": {
      "description": "Notification contains all the information returned from a notification.",
      "properties": {
        "action": {
          "type": "string"
        },
        "command": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "event": {
          "type": "string"
        },
        "extraDescription": {
          "type": "string"
        },
        "extraInfo": {
          "type": "string"
        },
        "extraLink": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "installation": {
          "$ref": "#/definitions/view.Relationship"
        },
        "item": {
          "$ref": "#/definitions/view.NotificationItem"
        },
        "link": {
          "type": "string"
        },
        "popUp": {
          "type": "boolean"
        },
        "privacy": {
          "$ref": "#/definitions/view.NotificationPrivacy"
        },
        "project": {
          "$ref": "#/definitions/view.NotificationProject"
        },
        "read": {
          "type": "boolean"
        },
        "user": {
          "$ref": "#/definitions/view.NotificationUser"
        }
      },
      "title": "Notification",
      "type": "object"
    },
    "view.NotificationItem": {
      "description": "NotificationItem contains the id and type being of what is being notified",
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "NotificationItem",
      "type": "object"
    },
    "view.NotificationPrivacy": {
      "description": "NotificationPrivacy contains if the notification links to a private item",
      "properties": {
        "lockdownId": {
          "type": "integer"
        },
        "private": {
          "type": "boolean"
        }
      },
      "title": "NotificationPrivacy",
      "type": "object"
    },
    "view.NotificationProject": {
      "description": "NotificationProject contains the project ID & and name of the associated notification",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "NotificationProject",
      "type": "object"
    },
    "view.NotificationUser": {
      "description": "NotificationUser contains the user information for the notification",
      "properties": {
        "avatar_url": {
          "type": "string"
        },
        "firstname": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "lastname": {
          "type": "string"
        }
      },
      "title": "NotificationUser",
      "type": "object"
    },
    "view.OriginalValue": {
      "description": "OriginalValue contains the original value before applying the exchange rate.",
      "properties": {
        "exchangeRate": {
          "$ref": "#/definitions/view.ExchangeRate"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "total": {
          "$ref": "#/definitions/view.Money"
        }
      },
      "title": "OriginalValue",
      "type": "object"
    },
    "view.Plan": {
      "description": "Plan contains all the information returned from a Plan.",
      "properties": {
        "code": {
          "type": "string"
        },
        "features": {
          "items": {
            "$ref": "#/definitions/view.PricePlanFeature"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "planName": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "Plan",
      "type": "object"
    },
    "view.PortfolioBoard": {
      "description": "PortfolioBoard contains all the information returned from a portfolio board.",
      "properties": {
        "color": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "PortfolioBoard",
      "type": "object"
    },
    "view.PortfolioCard": {
      "description": "PortfolioCard contains all the information returned from a portfolio\ncolumn.",
      "properties": {
        "board": {
          "$ref": "#/definitions/view.Relationship"
        },
        "boardId": {
          "type": "integer"
        },
        "column": {
          "$ref": "#/definitions/view.Relationship"
        },
        "columnId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "title": "PortfolioCard",
      "type": "object"
    },
    "view.PortfolioColumn": {
      "description": "PortfolioColumn contains all the information returned from a portfolio\ncolumn.",
      "properties": {
        "color": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "PortfolioColumn",
      "type": "object"
    },
    "view.PricePlanFeature": {
      "description": "PricePlanFeature contains all the information returned from a priceplan feaure.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "title": "PricePlanFeature",
      "type": "object"
    },
    "view.ProfitDetails": {
      "description": "ProfitDetails represents the totals.",
      "properties": {
        "billable": {
          "type": "number"
        },
        "billableTime": {
          "type": "integer"
        },
        "companyCount": {
          "description": "used for totals summary",
          "type": "integer"
        },
        "cost": {
          "type": "number"
        },
        "expenses": {
          "type": "number"
        },
        "expensesBillableTotal": {
          "type": "number"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "ownerCount": {
          "type": "integer"
        },
        "profit": {
          "type": "number"
        },
        "profitPercentage": {
          "type": "number"
        },
        "profitTargetPercentage": {
          "description": "Financial targets (off by default)",
          "type": "number"
        },
        "targetCostsDollars": {
          "type": "number"
        },
        "targetProfitDollars": {
          "type": "number"
        }
      },
      "title": "ProfitDetails",
      "type": "object"
    },
    "view.Project": {
      "description": "Project contains all the information returned from a project.",
      "properties": {
        "activePages": {
          "properties": {
            "billing": {
              "type": "boolean"
            },
            "board": {
              "type": "boolean"
            },
            "comments": {
              "type": "boolean"
            },
            "files": {
              "type": "boolean"
            },
            "finance": {
              "type": "boolean"
            },
            "forms": {
              "type": "boolean"
            },
            "gantt": {
              "type": "boolean"
            },
            "links": {
              "type": "boolean"
            },
            "list": {
              "type": "boolean"
            },
            "messages": {
              "type": "boolean"
            },
            "milestones": {
              "type": "boolean"
            },
            "notebooks": {
              "type": "boolean"
            },
            "proofs": {
              "type": "boolean"
            },
            "riskRegister": {
              "type": "boolean"
            },
            "schedule": {
              "type": "boolean"
            },
            "table": {
              "type": "boolean"
            },
            "tasks": {
              "type": "boolean"
            },
            "tickets": {
              "type": "boolean"
            },
            "time": {
              "type": "boolean"
            },
            "timeline": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "allowNotifyAnyone": {
          "type": "boolean"
        },
        "announcement": {
          "type": "string"
        },
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "completedAt": {
          "type": "string"
        },
        "completedBy": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "customfieldValues": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "defaultPrivacy": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "directFileUploadsEnabled": {
          "type": "boolean"
        },
        "endAt": {
          "type": "string"
        },
        "financialBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "harvestTimersEnabled": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "integrations": {
          "properties": {
            "googleDrive": {
              "properties": {
                "access": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "oneDriveBusiness": {
              "properties": {
                "account": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "sharepoint": {
              "properties": {
                "account": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "xero": {
              "properties": {
                "baseCurrency": {
                  "type": "string"
                },
                "connected": {
                  "type": "boolean"
                },
                "countryCode": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "organisation": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isOnBoardingProject": {
          "type": "boolean"
        },
        "isProjectAdmin": {
          "type": "boolean"
        },
        "isSampleProject": {
          "type": "boolean"
        },
        "isStarred": {
          "type": "boolean"
        },
        "lastWorkedOn": {
          "type": "string"
        },
        "latestActivity": {
          "$ref": "#/definitions/view.Relationship"
        },
        "logo": {
          "type": "string"
        },
        "logoColor": {
          "type": "string"
        },
        "logoIcon": {
          "type": "string"
        },
        "minMaxAvailableDates": {
          "$ref": "#/definitions/view.ProjectMinMaxAvailableDates"
        },
        "name": {
          "type": "string"
        },
        "notifyCommentIncludeCreator": {
          "type": "boolean"
        },
        "notifyEveryone": {
          "type": "boolean"
        },
        "notifyTaskAssignee": {
          "type": "boolean"
        },
        "overviewStartPage": {
          "type": "string"
        },
        "ownedBy": {
          "type": "integer"
        },
        "portfolioCards": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "privacyEnabled": {
          "type": "boolean"
        },
        "projectOwner": {
          "$ref": "#/definitions/view.Relationship"
        },
        "replyByEmailEnabled": {
          "type": "boolean"
        },
        "showAnnouncement": {
          "type": "boolean"
        },
        "skipWeekends": {
          "type": "boolean"
        },
        "startAt": {
          "type": "string"
        },
        "startPage": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "subStatus": {
          "type": "string"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "tasksStartPage": {
          "type": "string"
        },
        "timeBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timelogRequiresTask": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "update": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "workflows": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "Project",
      "type": "object"
    },
    "view.ProjectBudget": {
      "description": "ProjectBudget contains all the information returned from a budget.",
      "properties": {
        "baselineCapacity": {
          "type": "integer"
        },
        "budgetCategory": {
          "type": "string"
        },
        "budgetExpectedCost": {
          "type": "integer"
        },
        "budgetExpectedProfit": {
          "type": "integer"
        },
        "budgetProfitMargin": {
          "type": "number"
        },
        "capacity": {
          "type": "integer"
        },
        "capacityUsed": {
          "type": "integer"
        },
        "carryCapacity": {
          "type": "integer"
        },
        "carryOverspend": {
          "type": "boolean"
        },
        "carryUnderspend": {
          "type": "boolean"
        },
        "completedAt": {
          "type": "string"
        },
        "completedBy": {
          "type": "integer"
        },
        "completedByUserId": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "currencyCode": {
          "type": "string"
        },
        "dateCompleted": {
          "type": "string"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateDeleted": {
          "type": "string"
        },
        "dateUpdated": {
          "type": "string"
        },
        "defaultRate": {
          "type": "number"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserId": {
          "type": "integer"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "endDateTime": {
          "type": "string"
        },
        "expenseType": {
          "type": "string"
        },
        "finalizerEndDate": {
          "type": "string"
        },
        "financialDetailsHidden": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "isRepeating": {
          "type": "boolean"
        },
        "isRetainer": {
          "type": "boolean"
        },
        "notificationIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "notifications": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "originatorBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "originatorBudgetId": {
          "type": "integer"
        },
        "originatorStartDate": {
          "type": "string"
        },
        "originatorStartDateTime": {
          "type": "string"
        },
        "overspendAt": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "repeatPeriod": {
          "type": "integer"
        },
        "repeatUnit": {
          "type": "string"
        },
        "repeatsRemaining": {
          "type": "integer"
        },
        "sequenceEnd": {
          "type": "string"
        },
        "sequenceLength": {
          "type": "integer"
        },
        "sequenceNumber": {
          "type": "integer"
        },
        "sequenceStart": {
          "type": "string"
        },
        "startDate": {
          "description": "New date fields time agnostic and in DateOnly format. This will\nbe the new standard for all date fields on budgets. We will remove\nthe old date fields in a future release.",
          "format": "date",
          "type": "string"
        },
        "startDateTime": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "timelogType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "updatedByUserId": {
          "type": "integer"
        }
      },
      "title": "ProjectBudget",
      "type": "object"
    },
    "view.ProjectBudgetNotification": {
      "description": "ProjectBudgetNotification contains all the information returned from a notification.",
      "properties": {
        "capacityThreshold": {
          "type": "number"
        },
        "companies": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "companyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "notificationMedium": {
          "type": "string"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "ProjectBudgetNotification",
      "type": "object"
    },
    "view.ProjectCategory": {
      "description": "ProjectCategory contains all the information returned from a project\ncategory.",
      "properties": {
        "color": {
          "type": "string"
        },
        "count": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "parent": {
          "$ref": "#/definitions/view.Relationship"
        },
        "parentId": {
          "type": "integer"
        }
      },
      "title": "ProjectCategory",
      "type": "object"
    },
    "view.ProjectCounts": {
      "description": "ProjectCounts contains project counts.",
      "properties": {
        "active": {
          "type": "integer"
        },
        "archived": {
          "type": "integer"
        },
        "completed": {
          "type": "integer"
        },
        "current": {
          "type": "integer"
        },
        "late": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "title": "ProjectCounts",
      "type": "object"
    },
    "view.ProjectEmailDropbox": {
      "description": "ProjectEmailDropbox contains all the information returned from a file\ncategory.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "itemCode": {
          "type": "string"
        },
        "itemEmail": {
          "type": "string"
        },
        "itemType": {
          "type": "string"
        },
        "parent": {
          "$ref": "#/definitions/view.Relationship"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectCode": {
          "type": "string"
        },
        "projectEmails": {
          "$ref": "#/definitions/view.ProjectEmails"
        }
      },
      "title": "ProjectEmailDropbox",
      "type": "object"
    },
    "view.ProjectEmails": {
      "description": "ProjectEmails is the project emails.",
      "properties": {
        "files": {
          "type": "string"
        },
        "links": {
          "type": "string"
        },
        "messages": {
          "type": "string"
        },
        "notebooks": {
          "type": "string"
        },
        "tasks": {
          "type": "string"
        }
      },
      "title": "ProjectEmails",
      "type": "object"
    },
    "view.ProjectFileV205": {
      "description": "ProjectFileV205 contains all the information returned from a file.",
      "properties": {
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "categoryId": {
          "type": "integer"
        },
        "changeFollowers": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "commentFollowers": {
          "$ref": "#/definitions/view.UserGroupsDeprecated"
        },
        "commentsCount": {
          "type": "integer"
        },
        "commentsCountRead": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "downloadURL": {
          "type": "string"
        },
        "extraData": {
          "type": "string"
        },
        "fileSource": {
          "type": "string"
        },
        "filenameOnDisk": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isLocked": {
          "type": "boolean"
        },
        "isPrivate": {
          "description": "IsPrivate can have the values 0 for public, 1 for private and 2 for\ninherited.",
          "enum": [
            "0",
            "1",
            "2"
          ],
          "type": "integer"
        },
        "latestFileVersionNo": {
          "type": "integer"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "lockdownId": {
          "type": "integer"
        },
        "lockedAt": {
          "type": "string"
        },
        "lockedBy": {
          "type": "integer"
        },
        "lockedByUserId": {
          "type": "integer"
        },
        "lockedDate": {
          "type": "string"
        },
        "meta": {
          "type": "object"
        },
        "numLikes": {
          "type": "integer"
        },
        "originalName": {
          "type": "string"
        },
        "previewURL": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "reactions": {
          "$ref": "#/definitions/view.ReactionsForObject"
        },
        "relatedItems": {
          "$ref": "#/definitions/view.RelatedItems"
        },
        "shareable": {
          "type": "boolean"
        },
        "size": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "thumbURL": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "uploadedAt": {
          "type": "string"
        },
        "uploadedBy": {
          "type": "integer"
        },
        "uploadedByUserID": {
          "type": "integer"
        },
        "uploadedDate": {
          "type": "string"
        },
        "version": {
          "$ref": "#/definitions/view.Relationship"
        },
        "versionId": {
          "type": "integer"
        },
        "versions": {
          "items": {
            "$ref": "#/definitions/view.FileversionV205"
          },
          "type": "array"
        }
      },
      "title": "ProjectFileV205",
      "type": "object"
    },
    "view.ProjectItemStats": {
      "description": "ProjectItemStats contains items that counts are gathered for",
      "properties": {
        "billing": {
          "$ref": "#/definitions/view.ProjectStats"
        },
        "events": {
          "$ref": "#/definitions/view.ProjectStats"
        },
        "milestones": {
          "$ref": "#/definitions/view.ProjectStats"
        },
        "tasks": {
          "$ref": "#/definitions/view.ProjectStats"
        }
      },
      "title": "ProjectItemStats",
      "type": "object"
    },
    "view.ProjectMinMaxAvailableDates": {
      "description": "ProjectMinMaxAvailableDates shows suggested start and\nend dates for a project.",
      "properties": {
        "deadlinesFound": {
          "type": "boolean"
        },
        "maxEndDate": {
          "type": "string"
        },
        "minStartDate": {
          "type": "string"
        },
        "suggestedEndDate": {
          "type": "string"
        },
        "suggestedStartDate": {
          "type": "string"
        }
      },
      "title": "ProjectMinMaxAvailableDates",
      "type": "object"
    },
    "view.ProjectPermissions": {
      "description": "ProjectPermissions determines the user permissions associated with a project.",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "addExpenses": {
          "type": "boolean"
        },
        "addFiles": {
          "type": "boolean"
        },
        "addForms": {
          "type": "boolean"
        },
        "addLinks": {
          "type": "boolean"
        },
        "addMessages": {
          "type": "boolean"
        },
        "addMilestones": {
          "type": "boolean"
        },
        "addNotebooks": {
          "type": "boolean"
        },
        "addProjectUpdate": {
          "type": "boolean"
        },
        "addRisks": {
          "type": "boolean"
        },
        "addTaskLists": {
          "type": "boolean"
        },
        "addTasks": {
          "type": "boolean"
        },
        "addTime": {
          "type": "boolean"
        },
        "canAccess": {
          "type": "boolean"
        },
        "canEditWorkflows": {
          "type": "boolean"
        },
        "canManagePeople": {
          "type": "boolean"
        },
        "canManageProjectBudget": {
          "type": "boolean"
        },
        "canManageProjectMembership": {
          "type": "boolean"
        },
        "canManageProjectTemplates": {
          "type": "boolean"
        },
        "canManageRates": {
          "type": "boolean"
        },
        "canManageSchedule": {
          "type": "boolean"
        },
        "canViewForms": {
          "type": "boolean"
        },
        "canViewProjectBudget": {
          "type": "boolean"
        },
        "canViewProjectMembers": {
          "type": "boolean"
        },
        "canViewProjectProfitability": {
          "type": "boolean"
        },
        "canViewProjectTemplates": {
          "type": "boolean"
        },
        "canViewRates": {
          "type": "boolean"
        },
        "canViewSchedule": {
          "type": "boolean"
        },
        "canViewWorkflows": {
          "type": "boolean"
        },
        "editAllTasks": {
          "type": "boolean"
        },
        "inOwnerCompany": {
          "type": "boolean"
        },
        "isArchived": {
          "type": "boolean"
        },
        "isObserving": {
          "type": "boolean"
        },
        "manageCustomFields": {
          "type": "boolean"
        },
        "projectAdministrator": {
          "type": "boolean"
        },
        "receiveEmailNotifications": {
          "type": "boolean"
        },
        "setPrivacy": {
          "type": "boolean"
        },
        "viewAllTimeLogs": {
          "type": "boolean"
        },
        "viewEstimatedTime": {
          "type": "boolean"
        },
        "viewInvoices": {
          "type": "boolean"
        },
        "viewLinks": {
          "type": "boolean"
        },
        "viewMessagesAndFiles": {
          "type": "boolean"
        },
        "viewNotebooks": {
          "type": "boolean"
        },
        "viewProjectUpdate": {
          "type": "boolean"
        },
        "viewRiskRegister": {
          "type": "boolean"
        },
        "viewTasksAndMilestones": {
          "type": "boolean"
        },
        "viewTime": {
          "type": "boolean"
        }
      },
      "title": "ProjectPermissions",
      "type": "object"
    },
    "view.ProjectProfitabilitySummary": {
      "description": "ProjectProfitabilitySummary is the per-project profitability snapshot\nsurfaced in project list meta when projectProfitability is requested.",
      "properties": {
        "billableTotal": {
          "type": "number"
        },
        "profit": {
          "type": "number"
        },
        "totalCost": {
          "type": "number"
        }
      },
      "title": "ProjectProfitabilitySummary",
      "type": "object"
    },
    "view.ProjectStats": {
      "description": "ProjectStats contains counts of various statuses",
      "properties": {
        "active": {
          "type": "integer"
        },
        "archived": {
          "type": "integer"
        },
        "complete": {
          "type": "integer"
        },
        "count": {
          "type": "integer"
        },
        "current": {
          "type": "integer"
        },
        "hasEvents": {
          "type": "boolean"
        },
        "late": {
          "type": "integer"
        },
        "noDate": {
          "type": "integer"
        },
        "starred": {
          "type": "integer"
        },
        "today": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "title": "ProjectStats",
      "type": "object"
    },
    "view.ProjectSummary": {
      "description": "ProjectSummary contains the project related information for a user.",
      "properties": {
        "capacity": {
          "type": "number"
        },
        "capacityMinutes": {
          "type": "integer"
        },
        "milestones": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "ProjectSummary",
      "type": "object"
    },
    "view.ProjectUpdate": {
      "description": "ProjectUpdate contains all the information returned from a update.",
      "properties": {
        "color": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "health": {
          "type": "integer"
        },
        "healthLabel": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isActive": {
          "type": "boolean"
        },
        "likeFromUserIDs": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "likeFromUsers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "reactions": {
          "$ref": "#/definitions/view.ReactionsForObject"
        },
        "text": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "ProjectUpdate",
      "type": "object"
    },
    "view.ProjectV205": {
      "description": "ProjectV205 contains all the information returned from a project.",
      "properties": {
        "activePages": {
          "properties": {
            "billing": {
              "type": "boolean"
            },
            "board": {
              "type": "boolean"
            },
            "comments": {
              "type": "boolean"
            },
            "files": {
              "type": "boolean"
            },
            "finance": {
              "type": "boolean"
            },
            "forms": {
              "type": "boolean"
            },
            "gantt": {
              "type": "boolean"
            },
            "links": {
              "type": "boolean"
            },
            "list": {
              "type": "boolean"
            },
            "messages": {
              "type": "boolean"
            },
            "milestones": {
              "type": "boolean"
            },
            "notebooks": {
              "type": "boolean"
            },
            "proofs": {
              "type": "boolean"
            },
            "riskRegister": {
              "type": "boolean"
            },
            "schedule": {
              "type": "boolean"
            },
            "table": {
              "type": "boolean"
            },
            "tasks": {
              "type": "boolean"
            },
            "tickets": {
              "type": "boolean"
            },
            "time": {
              "type": "boolean"
            },
            "timeline": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "allowNotifyAnyone": {
          "type": "boolean"
        },
        "announcement": {
          "type": "string"
        },
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "categoryId": {
          "type": "integer"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "completedAt": {
          "type": "string"
        },
        "completedBy": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "customFieldValueIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "customFieldValues": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "customfieldValues": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "defaultPrivacy": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "directFileUploadsEnabled": {
          "type": "boolean"
        },
        "endAt": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "financialBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "financialBudgetId": {
          "type": "integer"
        },
        "harvestTimersEnabled": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "integrations": {
          "properties": {
            "googleDrive": {
              "properties": {
                "access": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "oneDriveBusiness": {
              "properties": {
                "account": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "sharepoint": {
              "properties": {
                "account": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "folder": {
                  "type": "string"
                },
                "folderName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "xero": {
              "properties": {
                "baseCurrency": {
                  "type": "string"
                },
                "connected": {
                  "type": "boolean"
                },
                "countryCode": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                },
                "organisation": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isOnBoardingProject": {
          "type": "boolean"
        },
        "isProjectAdmin": {
          "type": "boolean"
        },
        "isSampleProject": {
          "type": "boolean"
        },
        "isStarred": {
          "type": "boolean"
        },
        "lastWorkedOn": {
          "type": "string"
        },
        "latestActivity": {
          "$ref": "#/definitions/view.Relationship"
        },
        "logo": {
          "type": "string"
        },
        "logoColor": {
          "type": "string"
        },
        "logoIcon": {
          "type": "string"
        },
        "minMaxAvailableDates": {
          "$ref": "#/definitions/view.ProjectMinMaxAvailableDates"
        },
        "name": {
          "type": "string"
        },
        "notifyCommentIncludeCreator": {
          "type": "boolean"
        },
        "notifyEveryone": {
          "type": "boolean"
        },
        "notifyTaskAssignee": {
          "type": "boolean"
        },
        "overviewStartPage": {
          "type": "string"
        },
        "ownedBy": {
          "type": "integer"
        },
        "ownerId": {
          "type": "integer"
        },
        "portfolioCards": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "privacyEnabled": {
          "type": "boolean"
        },
        "projectOwner": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectOwnerId": {
          "type": "integer"
        },
        "replyByEmailEnabled": {
          "type": "boolean"
        },
        "showAnnouncement": {
          "type": "boolean"
        },
        "skipWeekends": {
          "type": "boolean"
        },
        "startAt": {
          "type": "string"
        },
        "startDate": {
          "type": "string"
        },
        "startPage": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "subStatus": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "tasksStartPage": {
          "type": "string"
        },
        "timeBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timeBudgetId": {
          "type": "integer"
        },
        "timelogRequiresTask": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "update": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updateId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "workflows": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "ProjectV205",
      "type": "object"
    },
    "view.ProjectsUserMeta": {
      "description": "ProjectsUserMeta contains user-scoped meta about a project listing.",
      "properties": {
        "hasProjects": {
          "type": "boolean"
        }
      },
      "title": "ProjectsUserMeta",
      "type": "object"
    },
    "view.Proof": {
      "description": "Proof contains all the information returned from a proof.",
      "properties": {
        "assignees": {
          "items": {
            "$ref": "#/definitions/view.Assignee"
          },
          "type": "array"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "description": {
          "type": "string"
        },
        "due": {
          "format": "date",
          "type": "string"
        },
        "entity": {
          "$ref": "#/definitions/view.Relationship"
        },
        "errorObjectIdxs": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "feedbackCount": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "$ref": "#/definitions/view.Relationship"
        },
        "objects": {
          "items": {
            "$ref": "#/definitions/view.ProofObject"
          },
          "type": "array"
        },
        "parent": {
          "$ref": "#/definitions/view.Relationship"
        },
        "product": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Proof",
      "type": "object"
    },
    "view.ProofObject": {
      "description": "ProofObject is a proof object item type.",
      "properties": {
        "URL": {
          "type": "string"
        },
        "approvalStatus": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "description": {
          "type": "string"
        },
        "due": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "$ref": "#/definitions/view.Relationship"
        },
        "size": {
          "type": "integer"
        },
        "sourceFormat": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "stateMessage": {
          "type": "string"
        },
        "thumbnail": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "totalChunks": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "version": {
          "type": "integer"
        }
      },
      "title": "ProofObject",
      "type": "object"
    },
    "view.PublicForm": {
      "description": "PublicForm is a publically viewable version of Form",
      "properties": {
        "allowFileUpload": {
          "type": "boolean"
        },
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/view.Content"
        },
        "createFormTask": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "showProgressBar": {
          "type": "boolean"
        },
        "submitButtonText": {
          "type": "string"
        },
        "token": {
          "$ref": "#/definitions/view.Token"
        }
      },
      "title": "PublicForm",
      "type": "object"
    },
    "view.Quote": {
      "description": "Quote contains all the information returned from a quote.",
      "properties": {
        "applyDiscountToLineitems": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "currency": {
          "$ref": "#/definitions/view.QuoteCurrency"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "destProject": {
          "$ref": "#/definitions/view.Relationship"
        },
        "destProjectId": {
          "type": "integer"
        },
        "fixedAmountDiscount": {
          "type": "number"
        },
        "fromCompany": {
          "$ref": "#/definitions/view.Relationship"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "type": "integer"
        },
        "isFixedPricing": {
          "type": "boolean"
        },
        "issueDate": {
          "type": "string"
        },
        "lineItems": {
          "items": {
            "$ref": "#/definitions/view.QuoteLineItem"
          },
          "type": "array"
        },
        "maxNumTaxes": {
          "type": "integer"
        },
        "notes": {
          "type": "string"
        },
        "percentageDiscount": {
          "type": "number"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "quoteNumber": {
          "type": "string"
        },
        "quotePlaceholders": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "sections": {
          "items": {
            "$ref": "#/definitions/view.QuoteSection"
          },
          "type": "array"
        },
        "sourceProject": {
          "$ref": "#/definitions/view.Relationship"
        },
        "sourceProjectId": {
          "type": "integer"
        },
        "statementOfWork": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "subTotal": {
          "type": "number"
        },
        "subTotalWithDiscount": {
          "type": "number"
        },
        "subTotalWithTax": {
          "type": "number"
        },
        "summary": {
          "type": "string"
        },
        "taxInclusive": {
          "type": "boolean"
        },
        "taxes": {
          "items": {
            "$ref": "#/definitions/view.QuoteTax"
          },
          "type": "array"
        },
        "toCompany": {
          "$ref": "#/definitions/view.Relationship"
        },
        "unassignedLineItems": {
          "items": {
            "$ref": "#/definitions/view.QuoteLineItem"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "validUntilDate": {
          "type": "string"
        }
      },
      "title": "Quote",
      "type": "object"
    },
    "view.QuoteCurrency": {
      "description": "QuoteCurrency contains the currency information for a quote.",
      "properties": {
        "code": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "symbol": {
          "type": "string"
        }
      },
      "title": "QuoteCurrency",
      "type": "object"
    },
    "view.QuoteLineItem": {
      "description": "QuoteLineItem contains all the information returned from a quote line item.",
      "properties": {
        "amount": {
          "type": "number"
        },
        "assignee": {
          "$ref": "#/definitions/view.Relationship"
        },
        "assigneeId": {
          "type": "integer"
        },
        "assigneeIsPlaceholder": {
          "type": "boolean"
        },
        "assigneeName": {
          "type": "string"
        },
        "billableAmountPercentageOfQuoteTotal": {
          "type": "number"
        },
        "billableAmountWithDiscount": {
          "type": "number"
        },
        "billableAmountWithTaxAndDiscount": {
          "type": "number"
        },
        "billableAmountWithoutDiscount": {
          "type": "number"
        },
        "costAmount": {
          "type": "number"
        },
        "costRate": {
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "discountAmount": {
          "type": "number"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "itemType": {
          "type": "string"
        },
        "percentageDiscount": {
          "type": "number"
        },
        "profitAmount": {
          "type": "number"
        },
        "profitMarginPercentage": {
          "type": "number"
        },
        "quantity": {
          "type": "number"
        },
        "quoteId": {
          "type": "integer"
        },
        "rate": {
          "type": "number"
        },
        "sectionId": {
          "type": "integer"
        },
        "sortOrder": {
          "type": "integer"
        },
        "startDate": {
          "format": "date",
          "type": "string"
        },
        "taxes": {
          "items": {
            "$ref": "#/definitions/view.QuoteTax"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        },
        "totalTaxAmount": {
          "type": "number"
        }
      },
      "title": "QuoteLineItem",
      "type": "object"
    },
    "view.QuoteSection": {
      "description": "QuoteSection contains all the information returned from a quote section.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "lineItems": {
          "items": {
            "$ref": "#/definitions/view.QuoteLineItem"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "quoteId": {
          "type": "integer"
        },
        "sortOrder": {
          "type": "integer"
        },
        "totalBillableAmountWithDiscount": {
          "type": "number"
        },
        "totalBillableAmountWithTaxAndDiscount": {
          "type": "number"
        },
        "totalBillableAmountWithoutDiscount": {
          "type": "number"
        },
        "totalCostAmount": {
          "type": "number"
        },
        "totalDiscountAmount": {
          "type": "number"
        },
        "totalProfitAmount": {
          "type": "number"
        },
        "totalProfitMarginPercentage": {
          "type": "number"
        },
        "totalQuantity": {
          "type": "number"
        },
        "totalTaxAmount": {
          "type": "number"
        }
      },
      "title": "QuoteSection",
      "type": "object"
    },
    "view.QuoteTax": {
      "description": "QuoteTax contains the tax information for a quote.",
      "properties": {
        "taxAmount": {
          "type": "number"
        },
        "taxBase": {
          "type": "number"
        },
        "taxCode": {
          "type": "string"
        },
        "taxIsCompounding": {
          "type": "boolean"
        },
        "taxPercentage": {
          "type": "number"
        }
      },
      "title": "QuoteTax",
      "type": "object"
    },
    "view.Reaction": {
      "description": "Reaction is a reaction item type.",
      "properties": {
        "installation": {
          "$ref": "#/definitions/view.Relationship"
        },
        "installationId": {
          "type": "integer"
        },
        "object": {
          "$ref": "#/definitions/view.Relationship"
        },
        "objectId": {
          "type": "integer"
        },
        "objectType": {
          "type": "string"
        },
        "postedDateTime": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Reaction",
      "type": "object"
    },
    "view.ReactionsForObject": {
      "description": "ReactionsForObject contains all reactions information of a specific object.",
      "properties": {
        "counts": {
          "$ref": "#/definitions/view.ReactionsForObjectCounter"
        },
        "mine": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "title": "ReactionsForObject",
      "type": "object"
    },
    "view.ReactionsForObjectCounter": {
      "description": "ReactionsForObjectCounter contains the reactions counter of a specific\nobject.",
      "properties": {
        "dislike": {
          "type": "integer"
        },
        "frown": {
          "type": "integer"
        },
        "heart": {
          "type": "integer"
        },
        "joy": {
          "type": "integer"
        },
        "like": {
          "type": "integer"
        }
      },
      "title": "ReactionsForObjectCounter",
      "type": "object"
    },
    "view.RelatedItems": {
      "description": "RelatedItems represents the items a file can be related to.",
      "properties": {
        "comments": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "messages": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tasks": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "RelatedItems",
      "type": "object"
    },
    "view.Relationship": {
      "description": "Relationship describes the relation between the main entity and a sideload type.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "meta": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "Relationship",
      "type": "object"
    },
    "view.ReportUtilizationData": {
      "description": "ReportUtilizationData contains report total, period totals and users data",
      "properties": {
        "actualUtilization": {
          "type": "number"
        },
        "allocatedMinutes": {
          "type": "integer"
        },
        "allocatedMinutesAverage": {
          "type": "number"
        },
        "allocatedUtilization": {
          "type": "number"
        },
        "availableMinutes": {
          "type": "integer"
        },
        "availableMinutesAverage": {
          "type": "number"
        },
        "availableUtilization": {
          "type": "number"
        },
        "averageCompanyCount": {
          "type": "number"
        },
        "averageUtilizationAchieved": {
          "type": "number"
        },
        "averageUtilizationTargets": {
          "type": "number"
        },
        "billableMinutes": {
          "description": "report specific",
          "type": "integer"
        },
        "billableMinutesAverage": {
          "type": "number"
        },
        "billableUtilization": {
          "type": "number"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "estimatedBillableUtilization": {
          "type": "number"
        },
        "estimatedMinutes": {
          "type": "integer"
        },
        "estimatedMinutesAverage": {
          "type": "number"
        },
        "estimatedNonBillableUtilization": {
          "type": "number"
        },
        "estimatedUtilization": {
          "type": "number"
        },
        "loggedMinutes": {
          "type": "integer"
        },
        "loggedMinutesAverage": {
          "type": "number"
        },
        "nonBillableUtilization": {
          "type": "number"
        },
        "periodTotals": {
          "items": {
            "$ref": "#/definitions/view.UtilizationTotals"
          },
          "type": "array"
        },
        "rowsCount": {
          "type": "integer"
        },
        "startDate": {
          "description": "period specific",
          "format": "date",
          "type": "string"
        },
        "totalWorkingMinutes": {
          "type": "integer"
        },
        "totalWorkingMinutesAverage": {
          "type": "number"
        },
        "unavailableMinutes": {
          "type": "integer"
        },
        "unavailableMinutesAverage": {
          "type": "number"
        },
        "unavailableUtilization": {
          "type": "number"
        },
        "unbillableMinutes": {
          "type": "integer"
        },
        "unbillableMinutesAverage": {
          "type": "number"
        },
        "uniqueCompanyCount": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.UserUtilization"
          },
          "type": "array"
        },
        "usersInTarget": {
          "type": "integer"
        }
      },
      "title": "ReportUtilizationData",
      "type": "object"
    },
    "view.Risk": {
      "description": "Risk represents a view of a risk.",
      "properties": {
        "canEdit": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "createdOn": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "impact": {
          "type": "string"
        },
        "impactCost": {
          "type": "boolean"
        },
        "impactPerformance": {
          "type": "boolean"
        },
        "impactSchedule": {
          "type": "boolean"
        },
        "impactValue": {
          "type": "integer"
        },
        "lastChangedByUserId": {
          "type": "integer"
        },
        "lastChangedOn": {
          "type": "string"
        },
        "mitigationPlan": {
          "type": "string"
        },
        "probability": {
          "type": "string"
        },
        "probabilityValue": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "result": {
          "type": "integer"
        },
        "source": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "title": "Risk",
      "type": "object"
    },
    "view.RoleBillableRate": {
      "description": "RoleBillableRate contains the role rate amount.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUserId": {
          "type": "integer"
        },
        "validFrom": {
          "type": "string"
        }
      },
      "title": "RoleBillableRate",
      "type": "object"
    },
    "view.RoleCostRate": {
      "description": "RoleCostRate contains the cost rate amount.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "rate": {
          "$ref": "#/definitions/view.Money"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUserId": {
          "type": "integer"
        }
      },
      "title": "RoleCostRate",
      "type": "object"
    },
    "view.SampleProject": {
      "description": "SampleProject contains all the sample project information.",
      "properties": {
        "category": {
          "$ref": "#/definitions/view.Relationship"
        },
        "categoryId": {
          "type": "integer"
        },
        "code": {
          "type": "string"
        },
        "content": {
          "type": "any"
        },
        "description": {
          "type": "string"
        },
        "icon": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "imagePreview": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "SampleProject",
      "type": "object"
    },
    "view.Skill": {
      "description": "Skill contains all the information returned from a skill.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedByUser": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "Skill",
      "type": "object"
    },
    "view.Stage": {
      "description": "Stage contains all the information returned from a stage.",
      "properties": {
        "color": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "showCompletedTasks": {
          "type": "boolean"
        },
        "taskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "workflow": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Stage",
      "type": "object"
    },
    "view.Status": {
      "description": "Status contains all the information returned from a status.",
      "properties": {
        "dateLastUpdated": {
          "type": "string"
        },
        "dateTime": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "emoji": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "ipAddress": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Status",
      "type": "object"
    },
    "view.Tag": {
      "description": "Tag contains all the information returned from a tag.",
      "properties": {
        "color": {
          "type": "string"
        },
        "count": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "title": "Tag",
      "type": "object"
    },
    "view.TaskAffectedV205": {
      "description": "TaskAffectedV205 contains the affected tasks, for real-time updates",
      "properties": {
        "linkedCardId": {
          "type": "integer"
        },
        "linkedColumnId": {
          "type": "integer"
        },
        "linkedColumnName": {
          "type": "string"
        },
        "taskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "title": "TaskAffectedV205",
      "type": "object"
    },
    "view.TaskCapacity": {
      "description": "TaskCapacity contains all the information returned from a capacity.",
      "properties": {
        "date": {
          "format": "date",
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "minutes": {
          "type": "integer"
        },
        "seconds": {
          "type": "integer"
        },
        "taskId": {
          "type": "integer"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "TaskCapacity",
      "type": "object"
    },
    "view.TaskPermissions": {
      "description": "TaskPermissions is a user specific set of task permissions",
      "properties": {
        "canAddSubtasks": {
          "type": "boolean"
        },
        "canComplete": {
          "type": "boolean"
        },
        "canEdit": {
          "type": "boolean"
        },
        "canLogTime": {
          "type": "boolean"
        },
        "canViewEstTime": {
          "type": "boolean"
        }
      },
      "title": "TaskPermissions",
      "type": "object"
    },
    "view.TaskReminder": {
      "description": "TaskReminder contains all the information returned from a reminder.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "id": {
          "type": "integer"
        },
        "isRelative": {
          "type": "boolean"
        },
        "note": {
          "type": "string"
        },
        "relativeNumberDays": {
          "type": "integer"
        },
        "remindAt": {
          "type": "string"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "type": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "wasSent": {
          "type": "boolean"
        }
      },
      "title": "TaskReminder",
      "type": "object"
    },
    "view.TaskSequence": {
      "description": "TaskSequence defines how entity.TaskSequence should be rendered.",
      "properties": {
        "dates": {
          "items": {
            "format": "date",
            "type": "string"
          },
          "type": "array"
        },
        "duration": {
          "type": "integer"
        },
        "endDate": {
          "type": "string"
        },
        "frequency": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "type": "integer"
        },
        "monthlyRepeatType": {
          "type": "string"
        },
        "rrule": {
          "type": "string"
        },
        "selectedWeekDays": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "TaskSequence",
      "type": "object"
    },
    "view.TaskStats": {
      "description": "TaskStats shows basic task stats",
      "properties": {
        "active": {
          "type": "integer"
        },
        "complete": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "late": {
          "type": "integer"
        }
      },
      "title": "TaskStats",
      "type": "object"
    },
    "view.TaskTimeTotals": {
      "description": "TaskTimeTotals contains time total info for a task. The accumulated* fields\nare only populated when the caller opts in via include=accumulatedTimeTotals\n(or the includeAccumulatedTimeTotals query param); otherwise they are\nomitted from the response.",
      "properties": {
        "accumulatedBillableLoggedMinutes": {
          "type": "integer"
        },
        "accumulatedBilledloggedMinutes": {
          "type": "integer"
        },
        "accumulatedLoggedMinutes": {
          "type": "integer"
        },
        "billableLoggedMinutes": {
          "type": "integer"
        },
        "billedloggedMinutes": {
          "type": "integer"
        },
        "loggedMinutes": {
          "type": "integer"
        }
      },
      "title": "TaskTimeTotals",
      "type": "object"
    },
    "view.TaskV205": {
      "description": "TaskV205 defines how entity.Task should be rendered.",
      "properties": {
        "accumulatedEstimatedMinutes": {
          "type": "integer"
        },
        "assigneeCompanies": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "assigneeCompanyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "assigneeJobRoleIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "assigneeJobRoles": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "assigneeTeamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "assigneeTeams": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "assigneeUserIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "assigneeUsers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "assignees": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "attachments": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "capacities": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "changeFollowers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "column": {
          "$ref": "#/definitions/view.Relationship"
        },
        "commentFollowers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "completeFollowers": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "completedAt": {
          "type": "string"
        },
        "completedBy": {
          "type": "integer"
        },
        "completedOn": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "createdByUserId": {
          "type": "integer"
        },
        "crmDealIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "dateUpdated": {
          "type": "string"
        },
        "decimalDisplayOrder": {
          "type": "number"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "dependencyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "description": {
          "type": "string"
        },
        "descriptionContentType": {
          "type": "string"
        },
        "displayOrder": {
          "type": "integer"
        },
        "dueDate": {
          "type": "string"
        },
        "dueDateBase": {
          "type": "string"
        },
        "dueDateFromMilestone": {
          "type": "boolean"
        },
        "dueDateOffset": {
          "type": "integer"
        },
        "estimateMinutes": {
          "type": "integer"
        },
        "hasDeskTickets": {
          "type": "boolean"
        },
        "hasReminders": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "isArchived": {
          "type": "boolean"
        },
        "isBlocked": {
          "type": "boolean"
        },
        "isPrivate": {
          "type": "integer"
        },
        "latestUpdates": {
          "items": {
            "$ref": "#/definitions/view.Audit"
          },
          "type": "array"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "meta": {
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "notify": {
          "type": "boolean"
        },
        "originalDueDate": {
          "format": "date",
          "type": "string"
        },
        "outOfSequence": {
          "type": "boolean"
        },
        "parentTask": {
          "$ref": "#/definitions/view.Relationship"
        },
        "parentTaskId": {
          "type": "integer"
        },
        "predecessorIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "predecessors": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "priority": {
          "type": "string"
        },
        "progress": {
          "type": "integer"
        },
        "proofs": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "sequence": {
          "$ref": "#/definitions/view.Relationship"
        },
        "sequenceDueDate": {
          "format": "date",
          "type": "string"
        },
        "sequenceId": {
          "type": "integer"
        },
        "sequenceRootTask": {
          "type": "boolean"
        },
        "sequenceStartDate": {
          "format": "date",
          "type": "string"
        },
        "startDate": {
          "type": "string"
        },
        "startDateOffset": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "subTaskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "tasklist": {
          "$ref": "#/definitions/view.Relationship"
        },
        "tasklistId": {
          "type": "integer"
        },
        "templateRoleName": {
          "type": "string"
        },
        "timer": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "userPermissions": {
          "$ref": "#/definitions/view.TaskPermissions"
        },
        "workflowStages": {
          "items": {
            "$ref": "#/definitions/view.TaskWorkflowStageData"
          },
          "type": "array"
        }
      },
      "title": "TaskV205",
      "type": "object"
    },
    "view.TaskWorkflowStageData": {
      "description": "TaskWorkflowStageData contains the workflow data for a task",
      "properties": {
        "stageId": {
          "type": "integer"
        },
        "stageTaskDisplayOrder": {
          "type": "number"
        },
        "workflowId": {
          "type": "integer"
        }
      },
      "title": "TaskWorkflowStageData",
      "type": "object"
    },
    "view.Taskgroup": {
      "description": "Taskgroup contains all the information returned from a Taskgroup.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "taskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "title": "Taskgroup",
      "type": "object"
    },
    "view.Tasklist": {
      "description": "Tasklist contains all the information returned from a tasklist.",
      "properties": {
        "calculatedDueDate": {
          "type": "string"
        },
        "calculatedStartDate": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "defaultTask": {
          "$ref": "#/definitions/view.Relationship"
        },
        "defaultTaskId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "displayOrder": {
          "type": "integer"
        },
        "icon": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isPinned": {
          "type": "boolean"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "lockdownId": {
          "type": "integer"
        },
        "milestone": {
          "$ref": "#/definitions/view.Relationship"
        },
        "milestoneId": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "tasklistBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "Tasklist",
      "type": "object"
    },
    "view.TasklistBudget": {
      "description": "TasklistBudget is a budget item type.",
      "properties": {
        "capacity": {
          "type": "integer"
        },
        "capacityUsed": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "installationId": {
          "type": "integer"
        },
        "milestone": {
          "$ref": "#/definitions/view.Relationship"
        },
        "notificationIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "notifications": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "projectBudgetId": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "projectbudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "tasklist": {
          "$ref": "#/definitions/view.Relationship"
        },
        "tasklistId": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "title": "TasklistBudget",
      "type": "object"
    },
    "view.TasklistBudgetNotification": {
      "description": "TasklistBudgetNotification contains all the information returned from a notification.",
      "properties": {
        "budgetId": {
          "type": "integer"
        },
        "capacityThreshold": {
          "type": "number"
        },
        "companyId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "notificationMedium": {
          "type": "string"
        },
        "teamId": {
          "type": "integer"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "TasklistBudgetNotification",
      "type": "object"
    },
    "view.Team": {
      "description": "Team contains all the information returned from a team.",
      "properties": {
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "handle": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "teamLogo": {
          "type": "string"
        },
        "teamLogoColor": {
          "type": "string"
        },
        "teamLogoIcon": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Team",
      "type": "object"
    },
    "view.TeamsDashboard": {
      "description": "TeamsDashboard contains all the information returned from a utilization.",
      "properties": {
        "data": {
          "$ref": "#/definitions/view.DashboardData"
        },
        "team": {
          "$ref": "#/definitions/view.Relationship"
        },
        "teamId": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "TeamsDashboard",
      "type": "object"
    },
    "view.TimeApproval": {
      "description": "TimeApproval contains all the information returned from a timeapproval.",
      "properties": {
        "approvedAt": {
          "type": "string"
        },
        "approvedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "changesRequested": {
          "$ref": "#/definitions/view.TimeApprovalChangesRequested"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "effectiveDateRanges": {
          "items": {
            "$ref": "#/definitions/view.DateRange"
          },
          "type": "array"
        },
        "endDate": {
          "type": "string"
        },
        "hasChanges": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "minutes": {
          "$ref": "#/definitions/view.TimeApprovalMinutes"
        },
        "monthDate": {
          "$ref": "#/definitions/entity.MonthDate"
        },
        "reopenRequestedAt": {
          "type": "string"
        },
        "startDate": {
          "type": "string"
        },
        "status": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "weekDate": {
          "$ref": "#/definitions/entity.WeekDate"
        },
        "workingHours": {
          "type": "number"
        }
      },
      "title": "TimeApproval",
      "type": "object"
    },
    "view.TimeApprovalChangesRequested": {
      "description": "TimeApprovalChangesRequested represents a time approval changes requested item.",
      "properties": {
        "description": {
          "type": "string"
        },
        "requestedAt": {
          "type": "string"
        },
        "requestedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "TimeApprovalChangesRequested",
      "type": "object"
    },
    "view.TimeApprovalMinutes": {
      "description": "TimeApprovalMinutes contains the minutes breakdown for a time approval.",
      "properties": {
        "billable": {
          "type": "integer"
        },
        "estimated": {
          "type": "integer"
        },
        "nonBillable": {
          "type": "integer"
        },
        "nonBilled": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "TimeApprovalMinutes",
      "type": "object"
    },
    "view.Timeblock": {
      "description": "Timeblock holds info about a timeblock",
      "properties": {
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "sequence": {
          "$ref": "#/definitions/view.TimeblockSequence"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timelog": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "title": "Timeblock",
      "type": "object"
    },
    "view.TimeblockSequence": {
      "description": "TimeblockSequence holds stats for the timeblock",
      "properties": {
        "position": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "TimeblockSequence",
      "type": "object"
    },
    "view.Timelog": {
      "description": "Timelog contains all the information returned from a timelog.",
      "properties": {
        "assignedTeamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "billable": {
          "type": "boolean"
        },
        "billableInfo": {
          "$ref": "#/definitions/view.BillableInfo"
        },
        "costInfo": {
          "$ref": "#/definitions/view.CostInfo"
        },
        "createdAt": {
          "type": "string"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateDeleted": {
          "type": "string"
        },
        "dateEdited": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedBy": {
          "type": "integer"
        },
        "deletedByUserId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "deskTicketId": {
          "type": "integer"
        },
        "editedByUserId": {
          "type": "integer"
        },
        "hasStartTime": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "isBillable": {
          "type": "boolean"
        },
        "isLocked": {
          "type": "boolean"
        },
        "loggedBy": {
          "type": "integer"
        },
        "loggedByUserId": {
          "type": "integer"
        },
        "minutes": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectBillingInvoice": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectBillingInvoiceId": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskId": {
          "type": "integer"
        },
        "taskIdPreMove": {
          "type": "integer"
        },
        "taskPreMove": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timeLogged": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Timelog",
      "type": "object"
    },
    "view.TimelogTotals": {
      "description": "TimelogTotals contains all the information returned for timelog totals.",
      "properties": {
        "estimatedMinutes": {
          "type": "integer"
        },
        "estimatedMinutesActive": {
          "type": "integer"
        },
        "estimatedMinutesCompleted": {
          "type": "integer"
        },
        "estimatedMinutesFiltered": {
          "type": "integer"
        },
        "estimatedMinutesWithLoggedTime": {
          "type": "integer"
        },
        "minutes": {
          "type": "integer"
        },
        "minutesBillable": {
          "type": "integer"
        },
        "minutesBilled": {
          "type": "integer"
        },
        "minutesNonBillable": {
          "type": "integer"
        },
        "minutesNonBilled": {
          "type": "integer"
        }
      },
      "title": "TimelogTotals",
      "type": "object"
    },
    "view.TimelogTotalsSubtasks": {
      "description": "TimelogTotalsSubtasks contains all the information returned for timelog totals for subtasks.",
      "properties": {
        "estimatedMinutes": {
          "type": "integer"
        },
        "minutes": {
          "type": "integer"
        },
        "minutesBillable": {
          "type": "integer"
        }
      },
      "title": "TimelogTotalsSubtasks",
      "type": "object"
    },
    "view.Timer": {
      "description": "Timer contains all the information returned from a timer.",
      "properties": {
        "billable": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "duration": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "intervals": {
          "items": {
            "$ref": "#/definitions/view.TimerInterval"
          },
          "type": "array"
        },
        "lastStartedAt": {
          "type": "string"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "running": {
          "type": "boolean"
        },
        "serverTime": {
          "type": "string"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        },
        "taskId": {
          "type": "integer"
        },
        "timeLogId": {
          "type": "integer"
        },
        "timelog": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timerLastIntervalEnd": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "Timer",
      "type": "object"
    },
    "view.TimerInterval": {
      "description": "TimerInterval contains all the information returned from a timer\ninterval.",
      "properties": {
        "duration": {
          "type": "integer"
        },
        "from": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "to": {
          "type": "string"
        }
      },
      "title": "TimerInterval",
      "type": "object"
    },
    "view.TimesheetCustomRow": {
      "description": "TimesheetCustomRow represents a custom row for a timesheet",
      "properties": {
        "entityId": {
          "type": "integer"
        },
        "entityType": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        }
      },
      "title": "TimesheetCustomRow",
      "type": "object"
    },
    "view.TimesheetDateApproval": {
      "description": "TimesheetDateApproval is the inline approval object on a date entry.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "status": {
          "type": "integer"
        }
      },
      "title": "TimesheetDateApproval",
      "type": "object"
    },
    "view.Token": {
      "description": "Token contains all the information returned from a form token.",
      "properties": {
        "canonicalURL": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "title": "Token",
      "type": "object"
    },
    "view.Totals": {
      "description": "Totals represents a summary of time totals",
      "properties": {
        "billableMinutes": {
          "type": "integer"
        },
        "billedMinutes": {
          "type": "integer"
        },
        "minutes": {
          "type": "integer"
        },
        "nonBillableMinutes": {
          "type": "integer"
        },
        "unavailableMinutes": {
          "type": "integer"
        },
        "workingHours": {
          "type": "number"
        }
      },
      "title": "Totals",
      "type": "object"
    },
    "view.UnavailableTimes": {
      "description": "UnavailableTimes contains date summary and total Unavailable minutes",
      "properties": {
        "dates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.UnavailableTimesDateSummary"
          },
          "type": "object"
        },
        "totalUnavailableMinutes": {
          "type": "integer"
        }
      },
      "title": "UnavailableTimes",
      "type": "object"
    },
    "view.UnavailableTimesDateSummary": {
      "description": "UnavailableTimesDateSummary contains total minutes and event ids for a date",
      "properties": {
        "totalUnavailableMinutes": {
          "type": "integer"
        },
        "unavailableTimes": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "UnavailableTimesDateSummary",
      "type": "object"
    },
    "view.User": {
      "description": "User contains all the information returned from an user.",
      "properties": {
        "avatarUrl": {
          "type": "string"
        },
        "canAccessPortfolio": {
          "type": "boolean"
        },
        "canAddProjects": {
          "type": "boolean"
        },
        "canManagePortfolio": {
          "type": "boolean"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "companyRoleId": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deleted": {
          "type": "boolean"
        },
        "email": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "isAdmin": {
          "type": "boolean"
        },
        "isClientUser": {
          "type": "boolean"
        },
        "isPlaceholderResource": {
          "type": "boolean"
        },
        "isServiceAccount": {
          "type": "boolean"
        },
        "jobRoles": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "lastLogin": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "lengthOfDay": {
          "type": "number"
        },
        "meta": {
          "type": "object"
        },
        "skills": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "timezone": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userCost": {
          "type": "integer"
        },
        "userRate": {
          "type": "integer"
        },
        "userRates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Money"
          },
          "description": "UserRates is a map of currency ID to rate",
          "type": "object"
        },
        "workingHour": {
          "$ref": "#/definitions/view.Relationship"
        },
        "workingHoursId": {
          "type": "integer"
        }
      },
      "title": "User",
      "type": "object"
    },
    "view.UserDashboard": {
      "description": "UserDashboard contains all the information returned from a dashboard.",
      "properties": {
        "color": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "dashboardPanelIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "dashboardPanels": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "dashboardSettingIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "dashboardSettings": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "displayOrder": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isDefault": {
          "type": "boolean"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "UserDashboard",
      "type": "object"
    },
    "view.UserDashboardPanel": {
      "description": "UserDashboardPanel contains all the information returned from a dashboard\npanel.",
      "properties": {
        "dashboardId": {
          "type": "integer"
        },
        "dashboardPanelSettingIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "displayOrder": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "title": "UserDashboardPanel",
      "type": "object"
    },
    "view.UserDashboardPanelSetting": {
      "description": "UserDashboardPanelSetting contains all the information returned from a dashboard\npanel.",
      "properties": {
        "dashboardId": {
          "type": "integer"
        },
        "dashboardPanelId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "title": "UserDashboardPanelSetting",
      "type": "object"
    },
    "view.UserDashboardSetting": {
      "description": "UserDashboardSetting contains all the information returned from a dashboard\nsetting.",
      "properties": {
        "dashboardId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "title": "UserDashboardSetting",
      "type": "object"
    },
    "view.UserEvents": {
      "description": "UserEvents contains status details from other project\nfeatures related with a user.",
      "properties": {
        "clockedIn": {
          "type": "boolean"
        }
      },
      "title": "UserEvents",
      "type": "object"
    },
    "view.UserGroupsDeprecated": {
      "description": "UserGroupsDeprecated are common lists\nfor storing users, companies and teams ids\ntogether.\nUse []Relationship instead",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "companyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "title": "UserGroupsDeprecated",
      "type": "object"
    },
    "view.UserMe": {
      "description": "UserMe contains all the information returned for me endpoint.",
      "properties": {
        "administrator": {
          "type": "boolean"
        },
        "auth": {
          "$ref": "#/definitions/view.UserMeAuth"
        },
        "avatarUrl": {
          "type": "string"
        },
        "canAccessPortfolio": {
          "type": "boolean"
        },
        "canAddProjects": {
          "type": "boolean"
        },
        "canManagePortfolio": {
          "type": "boolean"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "companyId": {
          "type": "integer"
        },
        "companyRoleId": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "deleted": {
          "type": "boolean"
        },
        "email": {
          "type": "string"
        },
        "emailAddress": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "inOwnerCompany": {
          "type": "boolean"
        },
        "installationId": {
          "type": "integer"
        },
        "isAdmin": {
          "type": "boolean"
        },
        "isClientUser": {
          "type": "boolean"
        },
        "isPlaceholderResource": {
          "type": "boolean"
        },
        "isServiceAccount": {
          "type": "boolean"
        },
        "jobRoles": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "lastLogin": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "ldHash": {
          "type": "string"
        },
        "lengthOfDay": {
          "type": "number"
        },
        "meta": {
          "type": "object"
        },
        "phoneNumberMobile": {
          "type": "string"
        },
        "siteOwner": {
          "type": "boolean"
        },
        "skills": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "timezone": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userCost": {
          "type": "integer"
        },
        "userName": {
          "type": "string"
        },
        "userRate": {
          "type": "integer"
        },
        "userRates": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Money"
          },
          "description": "UserRates is a map of currency ID to rate",
          "type": "object"
        },
        "userType": {
          "type": "string"
        },
        "workingHour": {
          "$ref": "#/definitions/view.Relationship"
        },
        "workingHoursId": {
          "type": "integer"
        }
      },
      "title": "UserMe",
      "type": "object"
    },
    "view.UserMeAuth": {
      "description": "UserMeAuth contains information returned for user auth",
      "properties": {
        "timestamp": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "userType": {
          "type": "string"
        }
      },
      "title": "UserMeAuth",
      "type": "object"
    },
    "view.UserUtilization": {
      "description": "UserUtilization contains all the information returned from a utilization.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/view.UserUtilizationData"
          },
          "type": "array"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "UserUtilization",
      "type": "object"
    },
    "view.UserUtilizationData": {
      "description": "UserUtilizationData stores the user utilization on a specific period.",
      "properties": {
        "actualUtilization": {
          "type": "number"
        },
        "allocatedMinutes": {
          "type": "integer"
        },
        "allocatedUtilization": {
          "type": "number"
        },
        "availableMinutes": {
          "type": "integer"
        },
        "availableUtilization": {
          "type": "number"
        },
        "billableMinutes": {
          "type": "integer"
        },
        "billableUtilization": {
          "type": "number"
        },
        "companyCount": {
          "type": "integer"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "estimatedBillableUtilization": {
          "type": "number"
        },
        "estimatedMinutes": {
          "type": "integer"
        },
        "estimatedUtilization": {
          "type": "number"
        },
        "loggedMinutes": {
          "type": "integer"
        },
        "nonBillableUtilization": {
          "type": "number"
        },
        "startDate": {
          "format": "date",
          "type": "string"
        },
        "totalWorkingMinutes": {
          "type": "integer"
        },
        "unavailableMinutes": {
          "type": "integer"
        },
        "unavailableUtilization": {
          "type": "number"
        },
        "unbillableMinutes": {
          "type": "integer"
        },
        "utilizationAchieved": {
          "type": "number"
        },
        "utilizationTarget": {
          "type": "integer"
        },
        "utilizationTargetMinutes": {
          "description": "Calculated fields",
          "type": "integer"
        }
      },
      "title": "UserUtilizationData",
      "type": "object"
    },
    "view.UserWorkload": {
      "description": "UserWorkload contains the user information.",
      "properties": {
        "capacity": {
          "type": "number"
        },
        "capacityMinutes": {
          "type": "integer"
        },
        "events": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "holidays": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "isHoliday": {
          "type": "boolean"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.ProjectSummary"
          },
          "type": "array"
        },
        "unavailableDay": {
          "type": "boolean"
        }
      },
      "title": "UserWorkload",
      "type": "object"
    },
    "view.UsersDashboard": {
      "description": "UsersDashboard contains all the information returned from a utilization.",
      "properties": {
        "data": {
          "$ref": "#/definitions/view.DashboardData"
        },
        "jobRoles": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "title": "UsersDashboard",
      "type": "object"
    },
    "view.UtilizationTotals": {
      "description": "UtilizationTotals stores the totals utilization on a specific period.",
      "properties": {
        "actualUtilization": {
          "type": "number"
        },
        "allocatedMinutes": {
          "type": "integer"
        },
        "allocatedMinutesAverage": {
          "type": "number"
        },
        "allocatedUtilization": {
          "type": "number"
        },
        "availableMinutes": {
          "type": "integer"
        },
        "availableMinutesAverage": {
          "type": "number"
        },
        "availableUtilization": {
          "type": "number"
        },
        "averageCompanyCount": {
          "type": "number"
        },
        "averageUtilizationAchieved": {
          "type": "number"
        },
        "averageUtilizationTargets": {
          "type": "number"
        },
        "billableMinutes": {
          "description": "report specific",
          "type": "integer"
        },
        "billableMinutesAverage": {
          "type": "number"
        },
        "billableUtilization": {
          "type": "number"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "estimatedBillableUtilization": {
          "type": "number"
        },
        "estimatedMinutes": {
          "type": "integer"
        },
        "estimatedMinutesAverage": {
          "type": "number"
        },
        "estimatedNonBillableUtilization": {
          "type": "number"
        },
        "estimatedUtilization": {
          "type": "number"
        },
        "loggedMinutes": {
          "type": "integer"
        },
        "loggedMinutesAverage": {
          "type": "number"
        },
        "nonBillableUtilization": {
          "type": "number"
        },
        "rowsCount": {
          "type": "integer"
        },
        "startDate": {
          "description": "period specific",
          "format": "date",
          "type": "string"
        },
        "totalWorkingMinutes": {
          "type": "integer"
        },
        "totalWorkingMinutesAverage": {
          "type": "number"
        },
        "unavailableMinutes": {
          "type": "integer"
        },
        "unavailableMinutesAverage": {
          "type": "number"
        },
        "unavailableUtilization": {
          "type": "number"
        },
        "unbillableMinutes": {
          "type": "integer"
        },
        "unbillableMinutesAverage": {
          "type": "number"
        },
        "uniqueCompanyCount": {
          "type": "integer"
        },
        "usersInTarget": {
          "type": "integer"
        }
      },
      "title": "UtilizationTotals",
      "type": "object"
    },
    "view.Workflow": {
      "description": "Workflow contains all the information returned from a workflow.",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "defaultWorkflow": {
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "name": {
          "type": "string"
        },
        "projectIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "projectSpecific": {
          "type": "boolean"
        },
        "stages": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "title": "Workflow",
      "type": "object"
    },
    "view.WorkingHour": {
      "description": "WorkingHour stores the the working hours of an entity (user, team, etc).",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "dateCreated": {
          "type": "string"
        },
        "dateUpdated": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "entries": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "entryIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "object": {
          "$ref": "#/definitions/view.Relationship"
        },
        "objectId": {
          "type": "integer"
        },
        "objectType": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "title": "WorkingHour",
      "type": "object"
    },
    "view.WorkingHourEntry": {
      "description": "WorkingHourEntry stores weekday working hour data.",
      "properties": {
        "endTime": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "startTime": {
          "type": "string"
        },
        "taskHours": {
          "type": "number"
        },
        "timezone": {
          "type": "string"
        },
        "weekday": {
          "type": "string"
        },
        "workingHour": {
          "$ref": "#/definitions/view.Relationship"
        },
        "workingHourId": {
          "type": "integer"
        }
      },
      "title": "WorkingHourEntry",
      "type": "object"
    },
    "view.Workload": {
      "description": "Workload contains all the information from users.",
      "properties": {
        "users": {
          "items": {
            "$ref": "#/definitions/view.DataSummary"
          },
          "type": "array"
        }
      },
      "title": "Workload",
      "type": "object"
    },
    "workflow.ApplyProjectRequest": {
      "description": "ApplyProjectRequest contains the information for applying a project to a workflow",
      "properties": {
        "workflow": {
          "properties": {
            "id": {
              "type": "integer"
            }
          },
          "type": "object"
        },
        "workflowOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "ApplyProjectRequest",
      "type": "object"
    },
    "workflow.Request": {
      "description": "Request contains information of a workflow to be created or updated.",
      "properties": {
        "workflow": {
          "$ref": "#/definitions/workflow.Workflow"
        },
        "workflowOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "logActivity": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "title": "Request",
      "type": "object"
    },
    "workflow.Response": {
      "description": "Response contains information about a specific workflow.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "stages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "workflow": {
          "$ref": "#/definitions/view.Workflow"
        }
      },
      "title": "Response",
      "type": "object"
    },
    "workflow.Workflow": {
      "description": "Workflow contains all the information returned from a workflow.",
      "properties": {
        "defaultWorkflow": {
          "type": "boolean"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "name": {
          "type": "string"
        },
        "projectId": {
          "type": "integer"
        },
        "projectSpecific": {
          "type": "boolean"
        },
        "sort": {
          "type": "string"
        },
        "sortOrder": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      },
      "title": "Workflow",
      "type": "object"
    },
    "workflow.WorkflowsResponse": {
      "description": "WorkflowsResponse contains information about a group of workflows.",
      "properties": {
        "included": {
          "properties": {
            "ProjectPermissions": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectPermissions"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectIntegrations": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Integrations"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.IncludedProject"
              },
              "type": "object"
            },
            "stages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "workflows": {
          "items": {
            "$ref": "#/definitions/view.Workflow"
          },
          "type": "array"
        }
      },
      "title": "WorkflowsResponse",
      "type": "object"
    },
    "workload.Response": {
      "description": "Response contains information about a workload.",
      "properties": {
        "included": {
          "properties": {
            "calendarEventTypes": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyCalendarEventType"
              },
              "type": "object"
            },
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "events": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyCalendarEvent"
              },
              "type": "object"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "publicHolidays": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CalendarHolidayEvent"
              },
              "type": "object"
            },
            "skills": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Skill"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "taskCapacities": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskCapacity"
              },
              "type": "object"
            },
            "taskSequences": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskSequence"
              },
              "type": "object"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "timelogs": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Timelog"
              },
              "type": "object"
            },
            "unavailableTimes": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyUnavailableTime"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            },
            "workingHourEntries": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHourEntry"
              },
              "type": "object"
            },
            "workingHours": {
              "additionalProperties": {
                "$ref": "#/definitions/view.WorkingHour"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "workload": {
          "$ref": "#/definitions/view.Workload"
        }
      },
      "title": "Response",
      "type": "object"
    }
  },
  "info": {
    "title": "Teamwork API V3",
    "version": "3.0"
  },
  "paths": {
    "/projects/api/v3/activity/{activityLogId}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_activity_{activityLogId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "activityLogId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Deletes an activity item.",
        "tags": [
          "Activity"
        ]
      }
    },
    "/projects/api/v3/allocations/{allocationId}/time.json": {
      "get": {
        "description": "Return logged time entries for a specific allocation. Only the time entries that\nthe logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_allocations_{allocationId}_time.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "allocationId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time entries for a specific allocation",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/budget/notifications/{notificationId}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_budget_notifications_{notificationId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "notificationId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing notification.",
        "tags": [
          "Budgets"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_budget_notifications_{notificationId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "notification.ProjectBudgetRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/notification.ProjectBudgetRequest"
            }
          },
          {
            "in": "path",
            "name": "notificationId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notification.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing notification.",
        "tags": [
          "Budgets"
        ]
      }
    },
    "/projects/api/v3/budgets/{id}/tasklists/budgets/bulk/add.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_budgets_{id}_tasklists_budgets_bulk_add.json",
        "parameters": [
          {
            "in": "body",
            "name": "tasklistbudget.BulkAddBudgetRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BulkAddBudgetRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BudgetsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Creates new tasklist budgets",
        "tags": [
          "Budgets"
        ]
      }
    },
    "/projects/api/v3/calendar/events.csv": {
      "get": {
        "description": "Generates an agenda report in CSV format containing all the events for the\nprovided filters.",
        "operationId": "GET_projects_api_v3_calendar_events.csv",
        "parameters": [
          {
            "description": "events that happen after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "events that happen before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "false",
            "description": "include tasks",
            "in": "query",
            "name": "withTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include milestones",
            "in": "query",
            "name": "withMilestones",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include events",
            "in": "query",
            "name": "withEvents",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "should include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when filtering events with targetUserIDs, display only when attending the event",
            "in": "query",
            "name": "attendingOnly",
            "type": "boolean"
          },
          {
            "description": "filter calendar events to show only the ones in typeIDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "typeIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided user",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetUserIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetProjectIDs",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate agenda report in CSV format",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendar/events.html": {
      "get": {
        "description": "Generates an agenda report in HTML format containing all the events for the\nprovided filters.",
        "operationId": "GET_projects_api_v3_calendar_events.html",
        "parameters": [
          {
            "description": "events that happen after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "events that happen before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "false",
            "description": "include tasks",
            "in": "query",
            "name": "withTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include milestones",
            "in": "query",
            "name": "withMilestones",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include events",
            "in": "query",
            "name": "withEvents",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "should include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when filtering events with targetUserIDs, display only when attending the event",
            "in": "query",
            "name": "attendingOnly",
            "type": "boolean"
          },
          {
            "description": "filter calendar events to show only the ones in typeIDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "typeIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided user",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetUserIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetProjectIDs",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate agenda report in HTML format",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendar/events.pdf": {
      "get": {
        "description": "Generates an agenda report in PDF format containing all the events for the\nprovided filters.",
        "operationId": "GET_projects_api_v3_calendar_events.pdf",
        "parameters": [
          {
            "description": "events that happen after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "events that happen before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "false",
            "description": "include tasks",
            "in": "query",
            "name": "withTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include milestones",
            "in": "query",
            "name": "withMilestones",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include events",
            "in": "query",
            "name": "withEvents",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "should include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when filtering events with targetUserIDs, display only when attending the event",
            "in": "query",
            "name": "attendingOnly",
            "type": "boolean"
          },
          {
            "description": "filter calendar events to show only the ones in typeIDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "typeIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided user",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetUserIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetProjectIDs",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate agenda report in PDF format",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendar/events.xlsx": {
      "get": {
        "description": "Generates an agenda report in XLSX format containing all the events for the\nprovided filters.",
        "operationId": "GET_projects_api_v3_calendar_events.xlsx",
        "parameters": [
          {
            "description": "events that happen after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "events that happen before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "false",
            "description": "include tasks",
            "in": "query",
            "name": "withTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include milestones",
            "in": "query",
            "name": "withMilestones",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include events",
            "in": "query",
            "name": "withEvents",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "should include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when filtering events with targetUserIDs, display only when attending the event",
            "in": "query",
            "name": "attendingOnly",
            "type": "boolean"
          },
          {
            "description": "filter calendar events to show only the ones in typeIDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "typeIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided user",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetUserIDs",
            "type": "array"
          },
          {
            "description": "filter to show only events for the provided projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "targetProjectIDs",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate agenda report in XLSX format",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendars.json": {
      "get": {
        "description": "Get all calendars.",
        "operationId": "GET_projects_api_v3_calendars.json",
        "parameters": [
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by calendar type",
            "enum": [
              "event",
              "blocked_time",
              "google",
              "outlook"
            ],
            "in": "query",
            "name": "calendarType",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "primary",
                "createdAt",
                "updatedAt"
              ],
              "type": "string"
            },
            "name": "fields[calendars]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/calendar.CalendarsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all calendars.",
        "tags": [
          "Calendars"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a new Calendar.",
        "operationId": "POST_projects_api_v3_calendars.json",
        "parameters": [
          {
            "in": "body",
            "name": "calendar.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/calendar.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/calendar.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new calendar.",
        "tags": [
          "Calendars"
        ]
      }
    },
    "/projects/api/v3/calendars/events/task-from-event.json": {
      "post": {
        "description": "Creates a new task based on a calendar event, linking all related events\n(sharing the same iCalUID) to the task and removing the event from\nunavailable time planning calculations.\n\nRequest (application/json): payloadcalendarevent.TaskFromEventRequest",
        "operationId": "POST_projects_api_v3_calendars_events_task-from-event.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/event.taskFromEventResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a task from a calendar event.",
        "tags": [
          "CalendarEvent"
        ]
      }
    },
    "/projects/api/v3/calendars/primary/events.json": {
      "get": {
        "description": "Get all events.",
        "operationId": "GET_projects_api_v3_calendars_primary_events.json",
        "parameters": [
          {
            "description": "load recent events after a specific date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter dates where the start date is after the given date.",
            "format": "date-time",
            "in": "query",
            "name": "startedAfterDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "startTime",
            "description": "order by",
            "enum": [
              "startTime",
              "updated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by iCalUID.",
            "in": "query",
            "name": "iCalUID",
            "type": "string"
          },
          {
            "description": "filter dates where the end date is before the given date.",
            "format": "date-time",
            "in": "query",
            "name": "endedBeforeDate",
            "type": "string"
          },
          {
            "description": "returns events on this date.",
            "format": "date",
            "in": "query",
            "name": "date",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "the maximum number of attendees to include in the response. If there are\nmore than the specified number of attendees, only the participant is\nreturned.",
            "in": "query",
            "name": "maxAttendees",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "includes deleted instances (cancelled)",
            "in": "query",
            "name": "showDeletedInstances",
            "type": "boolean"
          },
          {
            "description": "include deleted single events",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include timelogs that are attached to events",
            "in": "query",
            "name": "includeTimelogs",
            "type": "boolean"
          },
          {
            "description": "include ongoing events",
            "in": "query",
            "name": "includeOngoingEvents",
            "type": "boolean"
          },
          {
            "description": "includes modified instances (updated)",
            "in": "query",
            "name": "includeModifiedInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' master records",
            "in": "query",
            "name": "includeMasterInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' regular instances",
            "in": "query",
            "name": "includeInstances",
            "type": "boolean"
          },
          {
            "description": "exclude transparent events",
            "in": "query",
            "name": "excludeTransparentEvents",
            "type": "boolean"
          },
          {
            "description": "exclude events with single attendee",
            "in": "query",
            "name": "excludeSingleAttendeeEvents",
            "type": "boolean"
          },
          {
            "description": "allow non-owning users to access calendar.",
            "in": "query",
            "name": "allowNonOwned",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.jobroles",
                "jobroles",
                "masterInstances",
                "timeblocks.projects",
                "timeblocks.projects.permissions",
                "timeblocks.tasks",
                "timeblocks.tasks.tasklists",
                "timeblocks.projects.companies",
                "timeblocks.timelogs",
                "timeblocks.timelogs.tags",
                "timelogs",
                "timelogs.tags",
                "timelogs.tasks",
                "timelogs.tasks.tasklists",
                "timelogs.projects",
                "timelogs.projects.prermissions",
                "timelogs.projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "iCalUID",
                "status",
                "htmlLink",
                "createdAt",
                "updatedAt",
                "summary",
                "description",
                "color",
                "createdBy",
                "organizer",
                "start",
                "end",
                "allDay",
                "attendees",
                "location",
                "transparency",
                "visibility",
                "recurrence",
                "reminders",
                "videoCallLink"
              ],
              "type": "string"
            },
            "name": "fields[calendarsEvents]",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/event.CalendarEventsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all calendar events.",
        "tags": [
          "CalendarEvents"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a new Event.",
        "operationId": "POST_projects_api_v3_calendars_primary_events.json",
        "parameters": [
          {
            "in": "body",
            "name": "event.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/event.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/event.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new calendar event.",
        "tags": [
          "CalendarEvents"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/calendars/primary/events/{eventId}.json": {
      "get": {
        "description": "Returns a single event.",
        "operationId": "GET_projects_api_v3_calendars_primary_events_{eventId}.json",
        "parameters": [
          {
            "description": "the maximum number of attendees to include in the response. If there are\nmore than the specified number of attendees, only the participant is\nreturned.",
            "in": "query",
            "name": "maxAttendees",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include timelogs that are attached to events",
            "in": "query",
            "name": "includeTimelogs",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.jobroles",
                "jobroles",
                "timeblocks.timelogs"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "iCalUID",
                "status",
                "htmlLink",
                "createdAt",
                "updatedAt",
                "summary",
                "description",
                "color",
                "createdBy",
                "organizer",
                "start",
                "end",
                "allDay",
                "attendees",
                "location",
                "transparency",
                "visibility",
                "recurrence",
                "reminders",
                "videoCallLink"
              ],
              "type": "string"
            },
            "name": "fields[calendarsEvents]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/event.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific calendar event.",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendars/{calendarId}.json": {
      "get": {
        "description": "Returns a single calendar.",
        "operationId": "GET_projects_api_v3_calendars_{calendarId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/calendar.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific calendar.",
        "tags": [
          "Calendars"
        ]
      }
    },
    "/projects/api/v3/calendars/{calendarId}/events.json": {
      "get": {
        "description": "Get all events.",
        "operationId": "GET_projects_api_v3_calendars_{calendarId}_events.json",
        "parameters": [
          {
            "description": "load recent events after a specific date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter dates where the start date is after the given date.",
            "format": "date-time",
            "in": "query",
            "name": "startedAfterDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "startTime",
            "description": "order by",
            "enum": [
              "startTime",
              "updated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by iCalUID.",
            "in": "query",
            "name": "iCalUID",
            "type": "string"
          },
          {
            "description": "filter dates where the end date is before the given date.",
            "format": "date-time",
            "in": "query",
            "name": "endedBeforeDate",
            "type": "string"
          },
          {
            "description": "returns events on this date.",
            "format": "date",
            "in": "query",
            "name": "date",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "the maximum number of attendees to include in the response. If there are\nmore than the specified number of attendees, only the participant is\nreturned.",
            "in": "query",
            "name": "maxAttendees",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "includes deleted instances (cancelled)",
            "in": "query",
            "name": "showDeletedInstances",
            "type": "boolean"
          },
          {
            "description": "include deleted single events",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include timelogs that are attached to events",
            "in": "query",
            "name": "includeTimelogs",
            "type": "boolean"
          },
          {
            "description": "include ongoing events",
            "in": "query",
            "name": "includeOngoingEvents",
            "type": "boolean"
          },
          {
            "description": "includes modified instances (updated)",
            "in": "query",
            "name": "includeModifiedInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' master records",
            "in": "query",
            "name": "includeMasterInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' regular instances",
            "in": "query",
            "name": "includeInstances",
            "type": "boolean"
          },
          {
            "description": "exclude transparent events",
            "in": "query",
            "name": "excludeTransparentEvents",
            "type": "boolean"
          },
          {
            "description": "exclude events with single attendee",
            "in": "query",
            "name": "excludeSingleAttendeeEvents",
            "type": "boolean"
          },
          {
            "description": "allow non-owning users to access calendar.",
            "in": "query",
            "name": "allowNonOwned",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.jobroles",
                "jobroles",
                "masterInstances",
                "timeblocks.projects",
                "timeblocks.projects.permissions",
                "timeblocks.tasks",
                "timeblocks.tasks.tasklists",
                "timeblocks.projects.companies",
                "timeblocks.timelogs",
                "timeblocks.timelogs.tags",
                "timelogs",
                "timelogs.tags",
                "timelogs.tasks",
                "timelogs.tasks.tasklists",
                "timelogs.projects",
                "timelogs.projects.prermissions",
                "timelogs.projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "iCalUID",
                "status",
                "htmlLink",
                "createdAt",
                "updatedAt",
                "summary",
                "description",
                "color",
                "createdBy",
                "organizer",
                "start",
                "end",
                "allDay",
                "attendees",
                "location",
                "transparency",
                "visibility",
                "recurrence",
                "reminders",
                "videoCallLink"
              ],
              "type": "string"
            },
            "name": "fields[calendarsEvents]",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/event.CalendarEventsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all calendar events.",
        "tags": [
          "CalendarEvents"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a new Event.",
        "operationId": "POST_projects_api_v3_calendars_{calendarId}_events.json",
        "parameters": [
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "event.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/event.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/event.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new calendar event.",
        "tags": [
          "CalendarEvents"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/calendars/{calendarId}/events/{eventId}.json": {
      "get": {
        "description": "Returns a single event.",
        "operationId": "GET_projects_api_v3_calendars_{calendarId}_events_{eventId}.json",
        "parameters": [
          {
            "description": "the maximum number of attendees to include in the response. If there are\nmore than the specified number of attendees, only the participant is\nreturned.",
            "in": "query",
            "name": "maxAttendees",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include timelogs that are attached to events",
            "in": "query",
            "name": "includeTimelogs",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.jobroles",
                "jobroles",
                "timeblocks.timelogs"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "iCalUID",
                "status",
                "htmlLink",
                "createdAt",
                "updatedAt",
                "summary",
                "description",
                "color",
                "createdBy",
                "organizer",
                "start",
                "end",
                "allDay",
                "attendees",
                "location",
                "transparency",
                "visibility",
                "recurrence",
                "reminders",
                "videoCallLink"
              ],
              "type": "string"
            },
            "name": "fields[calendarsEvents]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/event.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific calendar event.",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/calendars/{id}.json": {
      "delete": {
        "description": "Delete an existing Calendar.",
        "operationId": "DELETE_projects_api_v3_calendars_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing calendar.",
        "tags": [
          "Calendars"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Update an existing Calendar.",
        "operationId": "PATCH_projects_api_v3_calendars_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "calendar.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/calendar.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/calendar.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing calendar.",
        "tags": [
          "Calendars"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_comments.json",
        "parameters": [
          {
            "description": "filter by risks updated after specified date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by risks updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content (like v1 filterText param)",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by published after date",
            "format": "date",
            "in": "query",
            "name": "publishedStartDate",
            "type": "string"
          },
          {
            "description": "filter by published before date",
            "format": "date",
            "in": "query",
            "name": "publishedEndDate",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "filter by commment status",
            "enum": [
              "all",
              "read",
              "unread"
            ],
            "in": "query",
            "name": "commentStatus",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use strict html filtering for content",
            "in": "query",
            "name": "strictHTML",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by object types",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "file",
                "notebook",
                "milestone",
                "link",
                "event",
                "status",
                "projectupdate"
              ],
              "type": "string"
            },
            "name": "objectTypes",
            "type": "array"
          },
          {
            "description": "object type where the comment is attached to (deprecated, use objectTypes)",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "file",
                "notebook",
                "milestone",
                "link",
                "event",
                "status",
                "projectupdate"
              ],
              "type": "string"
            },
            "name": "objectType",
            "type": "array"
          },
          {
            "description": "filter by object IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "objectIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the comments",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "reactions",
                "users",
                "projects",
                "projects.companies",
                "files",
                "fileversions",
                "tasks",
                "notebooks",
                "milestones",
                "links"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "title",
                "description",
                "code",
                "width",
                "height",
                "isPrivate",
                "provider",
                "projectId",
                "createdAt",
                "forceNewWindow",
                "deleted",
                "deletedAt",
                "updatedAt",
                "categoryId",
                "createdBy",
                "deletedBy",
                "updatedBy"
              ],
              "type": "string"
            },
            "name": "fields[links]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "fileVersionId",
                "fileId",
                "versionNo",
                "name",
                "originalName",
                "size",
                "uploadedBy",
                "uploadedAt",
                "description",
                "status",
                "projectId",
                "reactions",
                "commentsCount",
                "commentsCountRead",
                "displayName"
              ],
              "type": "string"
            },
            "name": "fields[fileversions]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "description": "filter by comment ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "commentIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments",
        "tags": [
          "Comments"
        ]
      }
    },
    "/projects/api/v3/comments/{id}.json": {
      "get": {
        "operationId": "GET_projects_api_v3_comments_{id}.json",
        "parameters": [
          {
            "description": "filter by risks updated after specified date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by risks updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content (like v1 filterText param)",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by published after date",
            "format": "date",
            "in": "query",
            "name": "publishedStartDate",
            "type": "string"
          },
          {
            "description": "filter by published before date",
            "format": "date",
            "in": "query",
            "name": "publishedEndDate",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "filter by commment status",
            "enum": [
              "all",
              "read",
              "unread"
            ],
            "in": "query",
            "name": "commentStatus",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use strict html filtering for content",
            "in": "query",
            "name": "strictHTML",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by object types",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "file",
                "notebook",
                "milestone",
                "link",
                "event",
                "status",
                "projectupdate"
              ],
              "type": "string"
            },
            "name": "objectTypes",
            "type": "array"
          },
          {
            "description": "object type where the comment is attached to (deprecated, use objectTypes)",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "file",
                "notebook",
                "milestone",
                "link",
                "event",
                "status",
                "projectupdate"
              ],
              "type": "string"
            },
            "name": "objectType",
            "type": "array"
          },
          {
            "description": "filter by object IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "objectIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the comments",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "reactions",
                "users",
                "projects",
                "projects.companies",
                "files",
                "fileversions",
                "tasks",
                "notebooks",
                "milestones",
                "links"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "title",
                "description",
                "code",
                "width",
                "height",
                "isPrivate",
                "provider",
                "projectId",
                "createdAt",
                "forceNewWindow",
                "deleted",
                "deletedAt",
                "updatedAt",
                "categoryId",
                "createdBy",
                "deletedBy",
                "updatedBy"
              ],
              "type": "string"
            },
            "name": "fields[links]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "fileVersionId",
                "fileId",
                "versionNo",
                "name",
                "originalName",
                "size",
                "uploadedBy",
                "uploadedAt",
                "description",
                "status",
                "projectId",
                "reactions",
                "commentsCount",
                "commentsCountRead",
                "displayName"
              ],
              "type": "string"
            },
            "name": "fields[fileversions]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "description": "filter by comment ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "commentIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Retrieve a specific comment",
        "tags": [
          "Comments"
        ]
      }
    },
    "/projects/api/v3/companies.json": {
      "get": {
        "description": "Retrieve all companies for the provided filters.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_companies.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by company name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "company",
            "description": "define the type of the report",
            "enum": [
              "company",
              "client"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "ownercompany",
            "description": "order by",
            "enum": [
              "name",
              "accounts",
              "clients",
              "collaborators",
              "contacts",
              "projects",
              "tasks",
              "country",
              "health",
              "website",
              "email",
              "phone",
              "fax",
              "industry",
              "dateadded",
              "ownercompany",
              "ownername",
              "taskscompletion",
              "customfield"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by exact company name",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "filter by companies after their projects activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by companies before their projects activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by first letter of company name",
            "in": "query",
            "name": "firstLetter",
            "type": "string"
          },
          {
            "description": "filter by created after date (deprecated, use createdAfter)",
            "format": "date-time",
            "in": "query",
            "name": "createdAfterDate",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "budget distribution ranges",
            "in": "query",
            "name": "budgetRanges",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "currency id of the company",
            "in": "query",
            "name": "currencyId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include client managers in the search",
            "in": "query",
            "name": "searchClientManagers",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return unfiltered company initial letter counts",
            "in": "query",
            "name": "returnLetters",
            "type": "boolean"
          },
          {
            "description": "only untagged companies",
            "in": "query",
            "name": "onlyUntaggedCompanies",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include untagged companies",
            "in": "query",
            "name": "includeUntaggedCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "retrieve tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include profitability data for each client",
            "in": "query",
            "name": "includeProfitability",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include company-level permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include budget summary",
            "in": "query",
            "name": "includeBudgetSummary",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include budget distribution data",
            "in": "query",
            "name": "includeBudgetDistribution",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include stats of company tasks and projects",
            "in": "query",
            "name": "getStats",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "include full profile",
            "in": "query",
            "name": "fullProfile",
            "type": "boolean"
          },
          {
            "description": "exclude the owner company",
            "in": "query",
            "name": "excludeOwnerCompany",
            "type": "boolean"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "tags",
                "countries",
                "industries",
                "clientmanagedby",
                "companyupdates",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by company statuses",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyHealths",
            "type": "array"
          },
          {
            "description": "filter by client manager user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientManagedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/company.CompaniesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all companies.",
        "tags": [
          "Companies"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a company.",
        "operationId": "POST_projects_api_v3_companies.json",
        "parameters": [
          {
            "in": "body",
            "name": "company.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/company.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/company.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a company.",
        "tags": [
          "Companies"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/companies/domains/{id}.json": {
      "delete": {
        "description": "Removes a company domain. It's still possible to recover the job role.\nMarks all related company domains assignments as deleted.",
        "operationId": "DELETE_projects_api_v3_companies_domains_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing company domain.",
        "tags": [
          "Companies"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Update an existing company domain.",
        "operationId": "PATCH_projects_api_v3_companies_domains_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "companydomain.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/companydomain.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/domain.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing company domain.",
        "tags": [
          "Companies"
        ]
      }
    },
    "/projects/api/v3/companies/time.json": {
      "get": {
        "description": "Return all logged time entries for all projects grouped by company ID.\nOnly the time entries that the logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_companies_time.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.CompanyTimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all time entries, grouped by company ID",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/companies/{companyId}.json": {
      "delete": {
        "description": "Delete a company.",
        "operationId": "DELETE_projects_api_v3_companies_{companyId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing company.",
        "tags": [
          "Companies"
        ],
        "x-private": true
      },
      "get": {
        "description": "Retrieves a company by id.",
        "operationId": "GET_projects_api_v3_companies_{companyId}.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by company name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "company",
            "description": "define the type of the report",
            "enum": [
              "company",
              "client"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "ownercompany",
            "description": "order by",
            "enum": [
              "name",
              "accounts",
              "clients",
              "collaborators",
              "contacts",
              "projects",
              "tasks",
              "country",
              "health",
              "website",
              "email",
              "phone",
              "fax",
              "industry",
              "dateadded",
              "ownercompany",
              "ownername",
              "taskscompletion",
              "customfield"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by exact company name",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "filter by companies after their projects activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by companies before their projects activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by first letter of company name",
            "in": "query",
            "name": "firstLetter",
            "type": "string"
          },
          {
            "description": "filter by created after date (deprecated, use createdAfter)",
            "format": "date-time",
            "in": "query",
            "name": "createdAfterDate",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "budget distribution ranges",
            "in": "query",
            "name": "budgetRanges",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "currency id of the company",
            "in": "query",
            "name": "currencyId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include client managers in the search",
            "in": "query",
            "name": "searchClientManagers",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return unfiltered company initial letter counts",
            "in": "query",
            "name": "returnLetters",
            "type": "boolean"
          },
          {
            "description": "only untagged companies",
            "in": "query",
            "name": "onlyUntaggedCompanies",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include untagged companies",
            "in": "query",
            "name": "includeUntaggedCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "retrieve tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include profitability data for each client",
            "in": "query",
            "name": "includeProfitability",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include company-level permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include budget summary",
            "in": "query",
            "name": "includeBudgetSummary",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include budget distribution data",
            "in": "query",
            "name": "includeBudgetDistribution",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include stats of company tasks and projects",
            "in": "query",
            "name": "getStats",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "include full profile",
            "in": "query",
            "name": "fullProfile",
            "type": "boolean"
          },
          {
            "description": "exclude the owner company",
            "in": "query",
            "name": "excludeOwnerCompany",
            "type": "boolean"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "tags",
                "countries",
                "industries",
                "clientmanagedby",
                "companyupdates",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by company statuses",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyHealths",
            "type": "array"
          },
          {
            "description": "filter by client manager user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientManagedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/company.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific company.",
        "tags": [
          "Companies"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing company.",
        "operationId": "PATCH_projects_api_v3_companies_{companyId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "company.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/company.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/company.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing company.",
        "tags": [
          "Companies"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/companies/{companyId}/customfields.json": {
      "get": {
        "description": "Return all custom field values from a specific company.",
        "operationId": "GET_projects_api_v3_companies_{companyId}_customfields.json",
        "parameters": [
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by company id",
            "in": "query",
            "name": "companyId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "description": "filter by custom field ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customFieldIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseCompany"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Company custom field values.",
        "tags": [
          "CustomFields"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a company custom field value.",
        "operationId": "POST_projects_api_v3_companies_{companyId}_customfields.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestCompany",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestCompany"
            }
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/value.responseCompany"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Add company custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/companies/{companyId}/customfields/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Remove many entries of company custom field values at once.",
        "operationId": "POST_projects_api_v3_companies_{companyId}_customfields_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkDeleteRequestCompany",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkDeleteRequestCompany"
            }
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many company custom fields values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/companies/{companyId}/customfields/bulk/update.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit many entries of company custom field values at once.",
        "operationId": "POST_projects_api_v3_companies_{companyId}_customfields_bulk_update.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkUpdateRequestCompany",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkUpdateRequestCompany"
            }
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseCompany"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update many company custom field values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json": {
      "delete": {
        "description": "Removes a company custom field value.",
        "operationId": "DELETE_projects_api_v3_companies_{companyId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing company custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "get": {
        "description": "Return a specific custom field value from a company.",
        "operationId": "GET_projects_api_v3_companies_{companyId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseCompany"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Company custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit a company custom field value.",
        "operationId": "PATCH_projects_api_v3_companies_{companyId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestCompany",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestCompany"
            }
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseCompany"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing company custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/companies/{companyId}/rates.json": {
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Set client rates for a company by role.",
        "operationId": "PATCH_projects_api_v3_companies_{companyId}_rates.json",
        "parameters": [
          {
            "in": "path",
            "name": "companyId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "company.ClientRatesRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/company.ClientRatesRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/company.ClientRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Set client rates for a company.",
        "tags": [
          "Companies"
        ]
      }
    },
    "/projects/api/v3/companies/{id}/convert-currency.json": {
      "post": {
        "description": "Request: payloadcompany.ConvertCurrencyRequest",
        "operationId": "POST_projects_api_v3_companies_{id}_convert-currency.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Convert a company's currency",
        "tags": [
          "Companies"
        ]
      }
    },
    "/projects/api/v3/companies/{id}/domains.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new company domain attached to company that id is passed as param.",
        "operationId": "POST_projects_api_v3_companies_{id}_domains.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "companydomain.BulkRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/companydomain.BulkRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/domain.BulkResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new company domains.",
        "tags": [
          "Companies"
        ]
      }
    },
    "/projects/api/v3/company/{id}/quotes.json": {
      "get": {
        "operationId": "GET_projects_api_v3_company_{id}_quotes.json",
        "parameters": [
          {
            "default": "all",
            "description": "filter by quote status",
            "enum": [
              "all",
              "open",
              "draft",
              "expired",
              "rejected",
              "accepted"
            ],
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter by start issue date",
            "format": "date",
            "in": "query",
            "name": "startIssueDate",
            "type": "string"
          },
          {
            "default": "issueDate",
            "description": "order by",
            "enum": [
              "quotenumber",
              "issueDate",
              "createdAt"
            ],
            "in": "query",
            "name": "sortBy",
            "type": "string"
          },
          {
            "description": "Filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "Filter by end issue date",
            "format": "date",
            "in": "query",
            "name": "endIssueDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include section items",
            "in": "query",
            "name": "includeSectionItems",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "View the quote as a client",
            "in": "query",
            "name": "clientView",
            "type": "boolean"
          },
          {
            "default": "[]",
            "description": "Filter by last updated by list of users",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "updatedBy",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "companies",
                "projects",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.QuotesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a list of quotes based on filter criteria.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/containers.json": {
      "get": {
        "description": "This returns all containers in the installation. You can\nlimit output by provided filters. Default data pagination\nis 50 items per page.",
        "operationId": "GET_projects_api_v3_containers.json",
        "parameters": [
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "filter by entity type for entity-scoped containers",
            "enum": [
              "company"
            ],
            "in": "query",
            "name": "entityType",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by type",
            "in": "query",
            "items": {
              "enum": [
                "dashboard",
                "insights"
              ],
              "type": "string"
            },
            "name": "types",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by entity ids for entity-scoped containers",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "entityIds",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "containerIDs",
            "type": "array"
          },
          {
            "description": "filter by app route",
            "in": "query",
            "items": {
              "enum": [
                "projecthealth",
                "playground",
                "playgrounddashboard"
              ],
              "type": "string"
            },
            "name": "appRoutes",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.ContainersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all containers.",
        "tags": [
          "Containers"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new container with the specified type, widgets,\nand configuration. The container will be validated against\npermission rules before creation.",
        "operationId": "POST_projects_api_v3_containers.json",
        "parameters": [
          {
            "in": "body",
            "name": "container.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/container.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/container.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new container.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/containers/insights/{route}.json": {
      "get": {
        "description": "This returns containers of type insights filtered by the\nspecified app route. This is a convenience endpoint that\nautomatically filters by container type.",
        "operationId": "GET_projects_api_v3_containers_insights_{route}.json",
        "parameters": [
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "filter by entity type for entity-scoped containers",
            "enum": [
              "company"
            ],
            "in": "query",
            "name": "entityType",
            "type": "string"
          },
          {
            "in": "path",
            "name": "route",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by type",
            "in": "query",
            "items": {
              "enum": [
                "dashboard",
                "insights"
              ],
              "type": "string"
            },
            "name": "types",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by entity ids for entity-scoped containers",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "entityIds",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "containerIDs",
            "type": "array"
          },
          {
            "description": "filter by app route",
            "in": "query",
            "items": {
              "enum": [
                "projecthealth",
                "playground",
                "playgrounddashboard"
              ],
              "type": "string"
            },
            "name": "appRoutes",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.ContainersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get insights containers for a specific route.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/containers/{id}.json": {
      "delete": {
        "description": "Removes a container by its ID. This will permanently delete\nthe container and all its associated widgets.",
        "operationId": "DELETE_projects_api_v3_containers_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing container.",
        "tags": [
          "Containers"
        ]
      },
      "get": {
        "description": "This returns all details about an individual container\nincluding its widgets and configuration.",
        "operationId": "GET_projects_api_v3_containers_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific container.",
        "tags": [
          "Containers"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates an existing container with new properties. The container\nwill be validated against permission rules before update.",
        "operationId": "PATCH_projects_api_v3_containers_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "container.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/container.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing container.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/customfields.json": {
      "get": {
        "description": "Return all custom fields for the provided filters.",
        "operationId": "GET_projects_api_v3_customfields.json",
        "parameters": [
          {
            "description": "filter by custom field name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "project",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by name",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return site-level custom fields",
            "in": "query",
            "name": "onlySiteLevel",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return custom fields for project-level in the response",
            "in": "query",
            "name": "onlyProjectLevel",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include custom fields for site-level in the response",
            "in": "query",
            "name": "includeSiteLevel",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "createdBy",
                "updatedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by custom field ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "description": "filter by entities",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "entities",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.CustomFieldsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all custom fields",
        "tags": [
          "CustomFields"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new custom field. The custom field could have a scope at an\ninstallation-level or at a project-level.",
        "operationId": "POST_projects_api_v3_customfields.json",
        "parameters": [
          {
            "in": "body",
            "name": "customfield.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customfield.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/customfield.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new custom field",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/customfields/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Remove multiple custom fields at once.",
        "operationId": "POST_projects_api_v3_customfields_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "customfield.BulkDeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customfield.BulkDeleteRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many custom fields at once",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/customfields/validate.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Validates syntax of formula field. Do not check for permissions, naming etc.",
        "operationId": "POST_projects_api_v3_customfields_validate.json",
        "parameters": [
          {
            "in": "body",
            "name": "customfield.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customfield.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.ValidateFormulaResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Validate syntax of formula field",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/customfields/{customFieldId}.json": {
      "delete": {
        "description": "Removes a custom field.",
        "operationId": "DELETE_projects_api_v3_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing custom field",
        "tags": [
          "CustomFields"
        ]
      },
      "get": {
        "description": "This returns all details about an individual custom field.",
        "operationId": "GET_projects_api_v3_customfields_{customFieldId}.json",
        "parameters": [
          {
            "description": "filter by custom field name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "project",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by name",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return site-level custom fields",
            "in": "query",
            "name": "onlySiteLevel",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return custom fields for project-level in the response",
            "in": "query",
            "name": "onlyProjectLevel",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include custom fields for site-level in the response",
            "in": "query",
            "name": "includeSiteLevel",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "createdBy",
                "updatedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by custom field ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "description": "filter by entities",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "entities",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a custom field by id.",
        "tags": [
          "CustomFields"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates an existing custom field.",
        "operationId": "PATCH_projects_api_v3_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "customfield.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customfield.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing custom field.",
        "tags": [
          "CustomFields"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates an existing custom field.",
        "operationId": "PUT_projects_api_v3_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "customfield.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customfield.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing custom field.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}.json": {
      "delete": {
        "description": "Delete a custom item.",
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing custom item.",
        "tags": [
          "CustomItems"
        ],
        "x-private": true
      },
      "get": {
        "description": "This returns all details about an individual custom item.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItemViews",
                "customItemFields",
                "customItemSections"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "viewTypeId",
                "displayName",
                "state",
                "displayOrder",
                "configuration",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemViews]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customItem",
                "displayName",
                "state",
                "displayOrder"
              ],
              "type": "string"
            },
            "name": "fields[customItemSections]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customitem.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a custom item by id.",
        "tags": [
          "CustomItems"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_customitems_{customItemId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "customitem.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customitem.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/customitem.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/fields.json": {
      "get": {
        "description": "Return all custom item fields for a specific custom item.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_fields.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/field.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get custom item fields for a specific custom item",
        "tags": [
          "CustomItems"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new custom item field for the specified custom item.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_fields.json",
        "parameters": [
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "field.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/field.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/field.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new field.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/fields/{id}.json": {
      "delete": {
        "description": "Delete a custom item field.",
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}_fields_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing custom item field.",
        "tags": [
          "CustomItems"
        ],
        "x-private": true
      },
      "get": {
        "description": "This returns all details about an individual custom item field.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_fields_{id}.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/field.CustomItemFieldsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a custom item field by id.",
        "tags": [
          "CustomItems"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_customitems_{customItemId}_fields_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "field.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/field.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/field.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item field.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records.json": {
      "get": {
        "description": "Return all custom item records for a specific custom item.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_records.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "customitemfield"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "null",
            "description": "order by field ID",
            "in": "query",
            "name": "orderByFieldId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "filter by section ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "sectionIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItems",
                "customItemFields",
                "customItemSections",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by record field values using advanced filters syntax",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/record.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get custom item records for a specific custom item",
        "tags": [
          "CustomItems"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new custom item record for the specified custom item.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_records.json",
        "parameters": [
          {
            "in": "body",
            "name": "record.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/record.Request"
            }
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/record.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new record.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records/{id}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}_records_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete a custom item record.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      },
      "get": {
        "description": "Return all details about an individual custom item record.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_records_{id}.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "customitemfield"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "null",
            "description": "order by field ID",
            "in": "query",
            "name": "orderByFieldId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "filter by section ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "sectionIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItems",
                "customItemFields",
                "customItemSections",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by record field values using advanced filters syntax",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/record.CustomItemRecordsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a custom item record by ID.",
        "tags": [
          "CustomItems"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_customitems_{customItemId}_records_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "record.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/record.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/record.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item record.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/sections.json": {
      "get": {
        "description": "Return all custom item sections for a specific custom item.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_sections.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "displayname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItems",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customItem",
                "displayName",
                "state",
                "displayOrder"
              ],
              "type": "string"
            },
            "name": "fields[customItemSections]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/section.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get custom item sections for a specific item",
        "tags": [
          "CustomItems"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new custom item section for the specified custom item.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_sections.json",
        "parameters": [
          {
            "in": "body",
            "name": "section.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/section.Request"
            }
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/section.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new section.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/customitems/{customItemId}/sections/{id}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}_sections_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete a custom item section.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      },
      "get": {
        "description": "Return all details about an individual custom item section.",
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_sections_{id}.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "displayname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItems",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customItem",
                "displayName",
                "state",
                "displayOrder"
              ],
              "type": "string"
            },
            "name": "fields[customItemSections]",
            "type": "array"
          },
          {
            "description": "filter by custom item ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customItemIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/section.CustomItemSectionsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a custom item section by ID.",
        "tags": [
          "CustomItems"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_customitems_{customItemId}_sections_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "section.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/section.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/section.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item section.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/dashboards.json": {
      "get": {
        "description": "Return all dashboards that the logged-in user can access. Dashboards contains\npanels that are used to summarize many activities from the installation.",
        "operationId": "GET_projects_api_v3_dashboards.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "isDefault",
            "description": "order by",
            "enum": [
              "isDefault",
              "displayOrder"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "dashboardSettings",
                "dashboardPanels",
                "dashboardPanels.settings"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "title",
                "color",
                "description",
                "isDefault",
                "userId",
                "projectId",
                "displayOrder",
                "deleted",
                "dateCreated",
                "dateUpdated",
                "dateDeleted",
                "dashboardPanelIds",
                "dashboardSettingIds"
              ],
              "type": "string"
            },
            "name": "fields[dashboards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dashboardId",
                "name",
                "value"
              ],
              "type": "string"
            },
            "name": "fields[dashboardSettings]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dashboardId",
                "name",
                "type",
                "displayOrder",
                "dashboardPanelSettingIds"
              ],
              "type": "string"
            },
            "name": "fields[dashboardPanels]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "dashboardId",
                "dashboardPanelId",
                "name",
                "value"
              ],
              "type": "string"
            },
            "name": "fields[dashboardPanelSettings]",
            "type": "array"
          },
          {
            "description": "filter by user dashboard ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "dashboardIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/dashboard.UserDashboardsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all dashboards",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/projects/api/v3/exchange-rates/{BaseCurrency}.json": {
      "get": {
        "description": "Retrieves all current exchange rates for the specified base currency from the Forex service.",
        "operationId": "GET_projects_api_v3_exchange-rates_{BaseCurrency}.json",
        "parameters": [
          {
            "description": "Base currency code (e.g., USD, EUR).",
            "in": "path",
            "name": "BaseCurrency",
            "required": true,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/exchangerate.ExchangeRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all exchange rates for a base currency",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/features.json": {
      "get": {
        "description": "Return all features accessible to the current installation.",
        "operationId": "GET_projects_api_v3_features.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/priceplan.FeaturesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get installation features",
        "tags": [
          "Features"
        ]
      }
    },
    "/projects/api/v3/files/{fileId}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_files_{fileId}_comments.json",
        "parameters": [
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a file",
        "tags": [
          "FileComments"
        ]
      }
    },
    "/projects/api/v3/fileversions/{id}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_fileversions_{id}_comments.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content (like v1 filterText param)",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by published after date",
            "format": "date",
            "in": "query",
            "name": "publishedStartDate",
            "type": "string"
          },
          {
            "description": "filter by published before date",
            "format": "date",
            "in": "query",
            "name": "publishedEndDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "data",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by commment status",
            "enum": [
              "all",
              "read",
              "unread"
            ],
            "in": "query",
            "name": "commentStatus",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use strict html filtering fto content",
            "in": "query",
            "name": "strictHTML",
            "type": "boolean"
          },
          {
            "description": "get reactions count",
            "in": "query",
            "name": "getReactionsCount",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the comments",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "reactions",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a file version",
        "tags": [
          "FileVersionComments"
        ]
      }
    },
    "/projects/api/v3/forms.json": {
      "get": {
        "description": "Return a list of all forms.",
        "operationId": "GET_projects_api_v3_forms.json",
        "parameters": [
          {
            "description": "query by token state",
            "enum": [
              "active",
              "inactive"
            ],
            "in": "query",
            "name": "token.state",
            "type": "string"
          },
          {
            "description": "filter by form name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dateUpdated",
            "description": "order by",
            "enum": [
              "name",
              "taskList",
              "totalSubmissions",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "query by hostObject type",
            "enum": [
              "projects"
            ],
            "in": "query",
            "name": "hostObject.type",
            "type": "string"
          },
          {
            "description": "query by form state",
            "enum": [
              "active",
              "deleted",
              "draft",
              "latest"
            ],
            "in": "query",
            "name": "content.state",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by host id",
            "in": "query",
            "name": "hostObject.id",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter only by project with direct membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "Include hasReachedFormLimit",
            "in": "query",
            "name": "checkHasReachedFormLimit",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.permissions",
                "projects.integrations",
                "projects.companies",
                "users",
                "tasklists"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "confirmationMessage",
                "promptAdditionalSubmissions",
                "allowTeamworkBranding",
                "isShared",
                "state",
                "taskTitleFieldId",
                "token",
                "content",
                "hostObject",
                "installation"
              ],
              "type": "string"
            },
            "name": "fields[forms]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.FormsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all forms.",
        "tags": [
          "Forms"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_forms.json",
        "parameters": [
          {
            "in": "body",
            "name": "form.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/form.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new form.",
        "tags": [
          "Forms"
        ]
      }
    },
    "/projects/api/v3/forms/public/{token}.json": {
      "get": {
        "description": "This endpoint does not require authentication.",
        "operationId": "GET_projects_api_v3_forms_public_{token}.json",
        "parameters": [
          {
            "description": "query by token state",
            "enum": [
              "active",
              "inactive"
            ],
            "in": "query",
            "name": "token.state",
            "type": "string"
          },
          {
            "description": "filter by form name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dateUpdated",
            "description": "order by",
            "enum": [
              "name",
              "taskList",
              "totalSubmissions",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "query by hostObject type",
            "enum": [
              "projects"
            ],
            "in": "query",
            "name": "hostObject.type",
            "type": "string"
          },
          {
            "description": "query by form state",
            "enum": [
              "active",
              "deleted",
              "draft",
              "latest"
            ],
            "in": "query",
            "name": "content.state",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by host id",
            "in": "query",
            "name": "hostObject.id",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter only by project with direct membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "Include hasReachedFormLimit",
            "in": "query",
            "name": "checkHasReachedFormLimit",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.permissions",
                "projects.integrations",
                "projects.companies",
                "users",
                "tasklists"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "confirmationMessage",
                "promptAdditionalSubmissions",
                "allowTeamworkBranding",
                "isShared",
                "state",
                "taskTitleFieldId",
                "token",
                "content",
                "hostObject",
                "installation"
              ],
              "type": "string"
            },
            "name": "fields[forms]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.PublicResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a forms via its token.",
        "tags": [
          "FormsPublic"
        ]
      }
    },
    "/projects/api/v3/forms/{formID}/copy.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_forms_{formID}_copy.json",
        "parameters": [
          {
            "in": "path",
            "name": "formID",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "form.CopyRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/form.CopyRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Copy a form",
        "tags": [
          "FormsPublic"
        ]
      }
    },
    "/projects/api/v3/forms/{formId}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_forms_{formId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "formId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing form.",
        "tags": [
          "Forms"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_forms_{formId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "formId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific form.",
        "tags": [
          "Forms"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_forms_{formId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "formId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "form.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/form.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing form.",
        "tags": [
          "Forms"
        ]
      }
    },
    "/projects/api/v3/forms/{formId}/draft.json": {
      "get": {
        "operationId": "GET_projects_api_v3_forms_{formId}_draft.json",
        "parameters": [
          {
            "in": "path",
            "name": "formId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/form.Response"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get the draft version of a specific form.",
        "tags": [
          "Forms"
        ]
      }
    },
    "/projects/api/v3/importer/stats.json": {
      "get": {
        "description": "This endpoint returns info about a set of importers. This includes whether\nthey are individually running or not, what's their status and a flag to\nrepresent if any importer is running. The endpoint looks up redis for this\ninformation. Using the parameter resetImporters this information can be\ndeleted in redis to reset it.",
        "operationId": "GET_projects_api_v3_importer_stats.json",
        "parameters": [
          {
            "default": "false",
            "description": "reset importers",
            "in": "query",
            "name": "resetImporters",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/importer.ImportersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get stats about Importers",
        "tags": [
          "Importers"
        ]
      }
    },
    "/projects/api/v3/jobroles.json": {
      "get": {
        "description": "This returns all job roles along installation. You can\nlimit output by provided filters. Default data pagination\nis 50 items per page.\nWhen include users all users that are assigned to that role\nwill be side loaded",
        "operationId": "GET_projects_api_v3_jobroles.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by job role name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return job roles assigned as primary in response",
            "in": "query",
            "name": "onlyPrimary",
            "type": "boolean"
          },
          {
            "description": "filter by updater user id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "updatedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobroleIDs",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "description": "filter by creator user id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter job roles by users assigned to it",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/jobrole.JobRolesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all job roles.",
        "tags": [
          "JobRoles"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new job role global to the entire installation.",
        "operationId": "POST_projects_api_v3_jobroles.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/jobrole.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/jobroles/{id}.json": {
      "delete": {
        "description": "Removes a job role. It's still possible to recover the job role.\nMarks all related job role assignments as deleted.",
        "operationId": "DELETE_projects_api_v3_jobroles_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing job role.",
        "tags": [
          "JobRoles"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Update an existing job role.",
        "operationId": "PATCH_projects_api_v3_jobroles_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/jobrole.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/jobroles/{id}/billable-rates.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_jobroles_{id}_billable-rates.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.BillableRatesRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.BillableRatesRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/jobrole.JobRoleRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Set billable rates for a job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/jobroles/{id}/cost-rates.json": {
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_jobroles_{id}_cost-rates.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.CostRatesRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.CostRatesRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/jobrole.JobRoleCostRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Set cost rates for a job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/jobroles/{id}/people.json": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "description": "Deletes one or more users from the given job role.",
        "operationId": "DELETE_projects_api_v3_jobroles_{id}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.UsersRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.UsersRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Remove a user from a job role.",
        "tags": [
          "JobRoles"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Assign a job role to one or more users. It will automatically\nunassign the given users from any other job role they might have\nassigned currently.",
        "operationId": "POST_projects_api_v3_jobroles_{id}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "jobrole.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobrole.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/jobrole.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Assign a job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/jobroles/{jobRoleId}.json": {
      "get": {
        "description": "This returns all details about an individual job role.\nWhen include users all users that are assigned to that role\nwill be side loaded",
        "operationId": "GET_projects_api_v3_jobroles_{jobRoleId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "jobRoleId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/jobrole.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific job role.",
        "tags": [
          "JobRoles"
        ]
      }
    },
    "/projects/api/v3/latestactivity.json": {
      "get": {
        "description": "Lists the latest activity across all projects ordered chronologically. When\nyou log into Teamwork you will see all the recent activity. This corresponds\nto that view in Teamwork. There are parameters you can send in to filter your\nresults.",
        "operationId": "GET_projects_api_v3_latestactivity.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fall back to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "group all activities on comments",
            "in": "query",
            "name": "groupCommentActivityType",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateTime",
                "activityType",
                "latestActivityType",
                "itemId",
                "itemLink",
                "itemType",
                "itemDescription",
                "itemExtraDescription",
                "itemExtraLink",
                "itemPublicInfo",
                "forUserId",
                "forUserName",
                "dueDate",
                "isPrivate",
                "lockdownId",
                "projectId",
                "companyId"
              ],
              "type": "string"
            },
            "name": "fields[activities]",
            "type": "array"
          },
          {
            "description": "filter by activity types",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "tasklist",
                "project",
                "message",
                "notebook",
                "milestone",
                "like",
                "file",
                "link",
                "billinginvoice",
                "task_comment",
                "milestone_comment",
                "file_comment",
                "link_comment",
                "comment"
              ],
              "type": "string"
            },
            "name": "activityTypes",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/activity.ActivitiesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Latest activity (all projects)",
        "tags": [
          "Activity"
        ]
      }
    },
    "/projects/api/v3/links/{linkId}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_links_{linkId}_comments.json",
        "parameters": [
          {
            "in": "path",
            "name": "linkId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a link item",
        "tags": [
          "LinkItems"
        ]
      }
    },
    "/projects/api/v3/me.json": {
      "get": {
        "operationId": "GET_projects_api_v3_me.json",
        "parameters": [
          {
            "description": "filter by user",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "include users auth information",
            "in": "query",
            "name": "includeAuth",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/me.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get logged user information",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/me/timers.json": {
      "get": {
        "description": "Will get all your running timers or the person you are logged in as.",
        "operationId": "GET_projects_api_v3_me_timers.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by task id",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enforce running timers only",
            "in": "query",
            "name": "runningTimersOnly",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.TimersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all your running timers",
        "tags": [
          "TimeTracking"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new timer. If there's already a timer running, it will stop this timer\nat default.",
        "operationId": "POST_projects_api_v3_me_timers.json",
        "parameters": [
          {
            "in": "body",
            "name": "timer.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timer.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new timer",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/me/timers/{timerId}.json": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "description": "Delete an existing timer.",
        "operationId": "DELETE_projects_api_v3_me_timers_{timerId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "timer.DeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timer.DeleteRequest"
            }
          },
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete a timer by ID",
        "tags": [
          "TimeTracking"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Edits the fields of a timer.",
        "operationId": "PUT_projects_api_v3_me_timers_{timerId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "timer.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timer.Request"
            }
          },
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Edits a timer",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/me/timers/{timerId}/complete.json": {
      "put": {
        "description": "Complete an existing timer. If the timer is currently running, it is paused to create\nthe timelog entry. When the timelog is created, the timer is deleted.",
        "operationId": "PUT_projects_api_v3_me_timers_{timerId}_complete.json",
        "parameters": [
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Complete a timer by ID",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/me/timers/{timerId}/pause.json": {
      "put": {
        "description": "Pause an existing timer.",
        "operationId": "PUT_projects_api_v3_me_timers_{timerId}_pause.json",
        "parameters": [
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Pause a timer by ID",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/me/timers/{timerId}/resume.json": {
      "put": {
        "description": "Resume an existing timer. If other timers are currently running, those timers are paused before resuming.",
        "operationId": "PUT_projects_api_v3_me_timers_{timerId}_resume.json",
        "parameters": [
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Resume a timer by ID",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/me/timers/{timerId}/undelete.json": {
      "put": {
        "description": "Restore an deleted timer.",
        "operationId": "PUT_projects_api_v3_me_timers_{timerId}_undelete.json",
        "parameters": [
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Restore a deleted timer item.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/messagereplies.json": {
      "get": {
        "description": "Return all replies for messages the user has access to.",
        "operationId": "GET_projects_api_v3_messagereplies.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by message name and body",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "createdat",
            "description": "order by",
            "enum": [
              "createdat"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "show unread message replies only",
            "in": "query",
            "name": "unreadOnly",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include original message replies, aka the messages themselves\n(internally, messages are also replies. it's complicated)",
            "in": "query",
            "name": "includeOriginal",
            "type": "boolean"
          },
          {
            "description": "include deleted message replies",
            "in": "query",
            "name": "includeDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the message replies",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "filter by message ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "messageIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "messages",
                "createdBy",
                "deletedBy",
                "tags"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId"
              ],
              "type": "string"
            },
            "name": "fields[messageReplies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/messagereply.MessageRepliesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all replies",
        "tags": [
          "MessageReplies"
        ]
      }
    },
    "/projects/api/v3/messagereplies/{id}.json": {
      "get": {
        "description": "Returns a specific message reply, identified by its id.",
        "operationId": "GET_projects_api_v3_messagereplies_{id}.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by message name and body",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "createdat",
            "description": "order by",
            "enum": [
              "createdat"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "show unread message replies only",
            "in": "query",
            "name": "unreadOnly",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include original message replies, aka the messages themselves\n(internally, messages are also replies. it's complicated)",
            "in": "query",
            "name": "includeOriginal",
            "type": "boolean"
          },
          {
            "description": "include deleted message replies",
            "in": "query",
            "name": "includeDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the message replies",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "filter by message ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "messageIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "messages",
                "createdBy",
                "deletedBy",
                "tags"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId"
              ],
              "type": "string"
            },
            "name": "fields[messageReplies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/messagereply.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific message reply",
        "tags": [
          "MessageReplies"
        ]
      }
    },
    "/projects/api/v3/messages.json": {
      "get": {
        "description": "Retrieve all messages for the provided filters.",
        "operationId": "GET_projects_api_v3_messages.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by message name and body",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "ownermessage",
            "description": "order by",
            "enum": [
              "createdat",
              "updatedat",
              "category",
              "project",
              "createdby",
              "unread"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "consider reply dates when using updatedAfter",
            "in": "query",
            "name": "updatedAfterIncludesReplies",
            "type": "boolean"
          },
          {
            "description": "show unread messages only",
            "in": "query",
            "name": "unreadOnly",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include deleted messages",
            "in": "query",
            "name": "includeDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "formatMarkdown",
            "type": "boolean"
          },
          {
            "description": "show archived messages only",
            "in": "query",
            "name": "archivedOnly",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the messages",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "latestreplies",
                "tags"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId"
              ],
              "type": "string"
            },
            "name": "fields[messageReplies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/message.MessagesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all messages.",
        "tags": [
          "Messages"
        ]
      }
    },
    "/projects/api/v3/messages/{messageId}.json": {
      "get": {
        "description": "Retrieves a message by id.",
        "operationId": "GET_projects_api_v3_messages_{messageId}.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by message name and body",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "ownermessage",
            "description": "order by",
            "enum": [
              "createdat",
              "updatedat",
              "category",
              "project",
              "createdby",
              "unread"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "messageId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "consider reply dates when using updatedAfter",
            "in": "query",
            "name": "updatedAfterIncludesReplies",
            "type": "boolean"
          },
          {
            "description": "show unread messages only",
            "in": "query",
            "name": "unreadOnly",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include deleted messages",
            "in": "query",
            "name": "includeDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "formatMarkdown",
            "type": "boolean"
          },
          {
            "description": "show archived messages only",
            "in": "query",
            "name": "archivedOnly",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the messages",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "latestreplies",
                "tags"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId"
              ],
              "type": "string"
            },
            "name": "fields[messageReplies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/message.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific message.",
        "tags": [
          "Messages"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Update specific fields on a message. If the property `read` is sent with the\nvalue `true` all replies from this message will be marked as read.",
        "operationId": "PATCH_projects_api_v3_messages_{messageId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "message.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/message.Request"
            }
          },
          {
            "in": "path",
            "name": "messageId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit a message.",
        "tags": [
          "Messages"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/messages/{messageId}/replies.json": {
      "get": {
        "description": "Return all replies for a given message, identified by its id.",
        "operationId": "GET_projects_api_v3_messages_{messageId}_replies.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by message name and body",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "createdat",
            "description": "order by",
            "enum": [
              "createdat"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "messageId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "show unread message replies only",
            "in": "query",
            "name": "unreadOnly",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include original message replies, aka the messages themselves\n(internally, messages are also replies. it's complicated)",
            "in": "query",
            "name": "includeOriginal",
            "type": "boolean"
          },
          {
            "description": "include deleted message replies",
            "in": "query",
            "name": "includeDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the message replies",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "filter by message ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "messageIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "messages",
                "createdBy",
                "deletedBy",
                "tags"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "messageId"
              ],
              "type": "string"
            },
            "name": "fields[messageReplies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/messagereply.MessageRepliesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all replies to a given message",
        "tags": [
          "MessageReplies"
        ]
      }
    },
    "/projects/api/v3/milestones.json": {
      "get": {
        "description": "All milestones are returned on projects that the authenticated user is\nassociated with. You can use the provided filters to return only those\nmilestones that are incomplete, completed, upcoming or late. All milestones\nare returning in this call. This call uses pagination, returning 100\nmilestones per page by default.",
        "operationId": "GET_projects_api_v3_milestones.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/milestone.MilestonesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all milestones",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/milestones/metrics/deadlines.json": {
      "get": {
        "description": "Count the number of milestones on each deadline date. Only the milestones\nthat the logged-in user can access will be included in the counting.",
        "operationId": "GET_projects_api_v3_milestones_metrics_deadlines.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/deadline.MilestoneMetricDeadlinesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get milestones by due date in a time range",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/milestones/{milestonId}.json": {
      "get": {
        "description": "This returns all details about an individual milestone.",
        "operationId": "GET_projects_api_v3_milestones_{milestonId}.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "milestonId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/milestone.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a milestone by id.",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/milestones/{milestoneId}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_milestones_{milestoneId}_comments.json",
        "parameters": [
          {
            "in": "path",
            "name": "milestoneId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a milestone",
        "tags": [
          "MilestoneComments"
        ]
      }
    },
    "/projects/api/v3/notebooks.json": {
      "get": {
        "operationId": "GET_projects_api_v3_notebooks.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by notebook name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "name": "projectStatuses",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dateUpdated",
            "description": "order by",
            "enum": [
              "name",
              "project",
              "dateCreated",
              "dateUpdated",
              "category"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by created after date (deprecated, use createdAfter)",
            "format": "date",
            "in": "query",
            "name": "createdAfterDate",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by showing only secure notebooks",
            "in": "query",
            "name": "secureOnly",
            "type": "boolean"
          },
          {
            "description": "match all notebook tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by showing only locked notebooks",
            "in": "query",
            "name": "lockedOnly",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include contents.",
            "in": "query",
            "name": "includeContents",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "filter by notebook tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "tags",
                "users",
                "notebookCategories",
                "companies",
                "teams"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[notebookCategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by notebook category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "categoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.NotebooksResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of notebooks.",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_notebooks_{notebookId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing notebook.",
        "tags": [
          "Notebooks"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "default": "normal",
            "description": "filter by project type",
            "enum": [
              "normal",
              "tasklists-template",
              "projects-template"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "show deleted notebooks",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "tags",
                "users",
                "notebookCategories",
                "companies",
                "teams"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[notebookCategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific notebook.",
        "tags": [
          "Notebooks"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Edits the fields of an existing notebook.",
        "operationId": "PATCH_projects_api_v3_notebooks_{notebookId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "notebook.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/notebook.Request"
            }
          },
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "tags",
                "users",
                "notebookCategories",
                "companies",
                "teams"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[notebookCategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Edits a notebook",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}_comments.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a notebook",
        "tags": [
          "NotebookComments"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/compare.json": {
      "get": {
        "description": "Gets the contents diff between the contents of 2 notebook versions",
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}_compare.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.VersionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Compare 2 notebook versions",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/lock.json": {
      "put": {
        "description": "Locks a specific notebook.",
        "operationId": "PUT_projects_api_v3_notebooks_{notebookId}_lock.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Lock a notebook",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/unlock.json": {
      "put": {
        "description": "Unlocks a specific notebook.",
        "operationId": "PUT_projects_api_v3_notebooks_{notebookId}_unlock.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Unlock a notebook",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/versions.json": {
      "delete": {
        "description": "Deletes some existing versions of a notebook by version ID.",
        "operationId": "DELETE_projects_api_v3_notebooks_{notebookId}_versions.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete notebook versions.",
        "tags": [
          "Notebooks"
        ]
      },
      "get": {
        "description": "Get a list of a notebooks versions.",
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}_versions.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.VersionsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get notebook versions",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/notebooks/{notebookId}/versions/{versionId}.json": {
      "get": {
        "description": "Get a specific notebook version.",
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}_versions_{versionId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "versionId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/notebook.VersionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a notebook version",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/people.json": {
      "get": {
        "description": "Retrieve all people for the provided filters.",
        "operationId": "GET_projects_api_v3_people.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "namecaseinsensitive",
              "company"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.MultiResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of people",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/people/metrics/performance.json": {
      "get": {
        "description": "Count the number of completed tasks by user for the provided period. By\ndefault the user with the most completed tasks is shown first.",
        "operationId": "GET_projects_api_v3_people_metrics_performance.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "desc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/performance.PeopleMetricPerformancesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Performance of users completing the most tasks",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/people/utilization.json": {
      "get": {
        "description": "Verify the user utilization.",
        "operationId": "GET_projects_api_v3_people_utilization.json",
        "parameters": [
          {
            "description": "determine the type of zoom filter used to display on the report",
            "enum": [
              "week",
              "month",
              "last3months",
              "quarterbyweek",
              "quarterbymonth"
            ],
            "in": "query",
            "name": "zoom",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "billableutilization",
              "nonbillableutilization"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "filter by user first or last name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "weekly",
              "monthly"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "companycount",
              "achieved",
              "target",
              "allocatedutilization",
              "totalworkingminutes",
              "availableutilization",
              "unavailableutilization"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "return response without summary and its legacy body structure",
            "in": "query",
            "name": "legacyResponse",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "determine if the query is for a custom date range",
            "in": "query",
            "name": "isCustomDateRange",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "adds report rows for individual entities",
            "in": "query",
            "name": "includeUtilizations",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds report summary to response",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include collaborators",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include client users",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "include calendar events",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "IncludeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by userIds",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by jobrole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "unavailableMinutes",
                "availableMinutes",
                "billableMinutes",
                "unbillableMinutes",
                "loggedMinutes"
              ],
              "type": "string"
            },
            "name": "fields[utilizations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/utilization.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Return the user utilization.",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/people/{personId}.json": {
      "delete": {
        "description": "Delete a person.",
        "operationId": "DELETE_projects_api_v3_people_{personId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "personId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing person.",
        "tags": [
          "People"
        ],
        "x-private": true
      },
      "get": {
        "description": "Retrieve a person record.",
        "operationId": "GET_projects_api_v3_people_{personId}.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "namecaseinsensitive",
              "company"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "in": "path",
            "name": "personId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a person",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/plans.json": {
      "get": {
        "description": "Return price plans and associated features.",
        "operationId": "GET_projects_api_v3_plans.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/priceplan.PlansResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get price plan by plan ID",
        "tags": [
          "Plans"
        ]
      }
    },
    "/projects/api/v3/projectcategories.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projectcategories.json",
        "parameters": [
          {
            "description": "filter by name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by starred projects only.\nnote: if an owner company admin, counts will honour this filter,\nbut all categories will be returned regardless.",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project statuses.\nnote: if an owner company admin, counts will honour this filter,\nbut all categories will be returned regardless.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/category.CategoriesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of project categories",
        "tags": [
          "Categories"
        ]
      }
    },
    "/projects/api/v3/projectcategories/{categoryId}.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projectcategories_{categoryId}.json",
        "parameters": [
          {
            "description": "filter by name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "path",
            "name": "categoryId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by starred projects only.\nnote: if an owner company admin, counts will honour this filter,\nbut all categories will be returned regardless.",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project statuses.\nnote: if an owner company admin, counts will honour this filter,\nbut all categories will be returned regardless.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/category.CategoriesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific project category",
        "tags": [
          "Categories"
        ]
      }
    },
    "/projects/api/v3/projects.json": {
      "get": {
        "description": "Retrieve all projects for the provided filters. Only the projects that the\nlogged-in user can access will be returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects.json",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.projectsResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/budgets/{budgetId}/tasklists/budgets/{tasklistId}.json": {
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_projects_budgets_{budgetId}_tasklists_budgets_{tasklistId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "tasklistbudget.PatchBudgetRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tasklistbudget.PatchBudgetRequest"
            }
          },
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "budgetId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BudgetResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Updates a tasklist budget",
        "tags": [
          "Budgets"
        ]
      }
    },
    "/projects/api/v3/projects/budgets/{id}/tasklists/budgets.json": {
      "get": {
        "description": "Get a list of tasklist budgets information.",
        "operationId": "GET_projects_api_v3_projects_budgets_{id}_tasklists_budgets.json",
        "parameters": [
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dateCreated",
            "description": "order by",
            "enum": [
              "dateCreated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "0",
            "description": "parent project budget id",
            "in": "query",
            "name": "projectBudgetId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "tasklists",
                "projectBudgets",
                "tasklistBudgetNotifications"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklistBudgetNotifications]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BudgetsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all tasklist budgets in a project budget.",
        "tags": [
          "Budgets"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "payload. If an ID is provided it is seen as an update, else it inserts.\nNOTE: the payload provided is the final source of truth, meaning any\nbudgets omitted will be cleared.\n\nAdds or updates task list budgets.",
        "operationId": "PUT_projects_api_v3_projects_budgets_{id}_tasklists_budgets.json",
        "parameters": [
          {
            "in": "body",
            "name": "tasklistbudget.BulkAddBudgetRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BulkAddBudgetRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklistbudget.BudgetsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Adds or updates task list budgets depending on the",
        "tags": [
          "Budgets"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/projects/featureorder.json": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Each field must have an index, from 0 to numFeatures -1\nwithout repeated numbers to provide the order\nto display the features",
        "operationId": "PUT_projects_api_v3_projects_featureorder.json",
        "parameters": [
          {
            "in": "body",
            "name": "project.FeatureOrderDefaults",
            "required": true,
            "schema": {
              "$ref": "#/definitions/project.FeatureOrderDefaults"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.FeatureOrderResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Sets the default features order to display in tab",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/health.json": {
      "get": {
        "description": "Calculate and return health scores for projects. If no project IDs are provided,\nreturns health scores for all projects the user has access to.",
        "operationId": "GET_projects_api_v3_projects_health.json",
        "parameters": [
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/health.HealthScoresResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get health scores for projects",
        "tags": [
          "ProjectHealth"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/active.json": {
      "get": {
        "description": "Return the number of active projects that the logged-in user can access.",
        "operationId": "GET_projects_api_v3_projects_metrics_active.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/active.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get the total count of active projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/billable.json": {
      "get": {
        "description": "Returns the total billable time of all projects that the logged-in user has\naccess.",
        "operationId": "GET_projects_api_v3_projects_metrics_billable.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "desc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/billable.ProjectMetricBillablesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the total billable time per project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/healths.json": {
      "get": {
        "description": "Return the number of projects on each health category. It will only count the\nprojects that the logged-in user can access.",
        "operationId": "GET_projects_api_v3_projects_metrics_healths.json",
        "parameters": [
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project health\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/health.ProjectMetricHealthsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a health summary for all projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/invoice.json": {
      "get": {
        "description": "Count the number of open invoices on all projects that the logged-in user has\naccess.",
        "operationId": "GET_projects_api_v3_projects_metrics_invoice.json",
        "parameters": [
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project health\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/invoice.ProjectMetricInvoicesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Return open invoices across all projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/owners.json": {
      "get": {
        "description": "Count the number of projects per project owner user.",
        "operationId": "GET_projects_api_v3_projects_metrics_owners.json",
        "parameters": [
          {
            "default": "desc",
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project health\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/owner.ProjectMetricOwnersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get number of owned and un-assigned projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/metrics/unbilled.json": {
      "get": {
        "description": "Return the un-billed expenses for each project that the logged-in user has\naccess.",
        "operationId": "GET_projects_api_v3_projects_metrics_unbilled.json",
        "parameters": [
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project health\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/unbilled.ProjectMetricUnbilledResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Return un-billed expenses across all projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/people/{userId}/enqueue.json": {
      "put": {
        "operationId": "PUT_projects_api_v3_projects_people_{userId}_enqueue.json",
        "parameters": [
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.AddPeopleToProjectResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Bulk applies a user to many projects",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/projects/starred.json": {
      "get": {
        "description": "Retrieve all starred projects for the provided filters. Only the projects\nthat the logged-in user can access will be returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects_starred.json",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.projectsResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of starred projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/teamwork/categories.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projects_teamwork_categories.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/category.CategoriesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of teamwork project categories",
        "tags": [
          "Categories"
        ]
      }
    },
    "/projects/api/v3/projects/teamwork/samples.json": {
      "get": {
        "description": "Retrieve all sample projects for the provided filters.",
        "operationId": "GET_projects_api_v3_projects_teamwork_samples.json",
        "parameters": [
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by sample ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "code",
                "description",
                "icon",
                "imagePreview",
                "categoryId",
                "category",
                "content"
              ],
              "type": "string"
            },
            "name": "fields[sampleprojects]",
            "type": "array"
          },
          {
            "description": "filter by category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "categoryIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.SampleProjectsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of teamwork sample projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/templates.json": {
      "get": {
        "description": "Retrieve all projects templates for the provided filters. Only the projects templates that the\nlogged-in user can access will be returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects_templates.json",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.projectsResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of projects templates",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/tentative/{projectId}/convert.json": {
      "put": {
        "operationId": "PUT_projects_api_v3_projects_tentative_{projectId}_convert.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.SampleProjectsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Converts the given tentative project into normal",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/updates.json": {
      "get": {
        "description": "Return the updates from all projects that the logged-in user can access.",
        "operationId": "GET_projects_api_v3_projects_updates.json",
        "parameters": [
          {
            "description": "filter by updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "color",
              "health",
              "project",
              "user"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by creation date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by project id\n\nDeprecated: use ProjectIDs instead.",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "add reactions to the response",
            "in": "query",
            "name": "reactions",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "filter by active",
            "in": "query",
            "name": "activeOnly",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "createdBy",
                "deletedBy",
                "likes.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/update.ProjectUpdatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all project updates",
        "tags": [
          "ProjectUpdates"
        ]
      }
    },
    "/projects/api/v3/projects/{projectIds}/summary.json": {
      "get": {
        "description": "Retrieves the summary from a specific project, returning counters about\ntasks, milestones, columns, events, risks, timers, projects healths.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects_{projectIds}_summary.json",
        "parameters": [
          {
            "description": "used to limit the since counters to a specific period",
            "enum": [
              "now",
              "timeRange"
            ],
            "in": "query",
            "name": "until",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "timeRangeStart",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "timeRangeEnd",
            "type": "string"
          },
          {
            "description": "filter by time range. It will be ignored if timeRangeStart and timeRangeEnd\nwere informed.",
            "enum": [
              "yesterday",
              "today",
              "thisweek",
              "lastweek",
              "thismonth",
              "lastmonth",
              "last3months",
              "last6months"
            ],
            "in": "query",
            "name": "timeRange",
            "type": "string"
          },
          {
            "description": "project status (deprecated, use projectStatuses)",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectIds",
            "required": true,
            "type": "integer"
          },
          {
            "default": "7",
            "description": "number of days remaining to event's start",
            "in": "query",
            "name": "eventsDaysAhead",
            "type": "integer"
          },
          {
            "description": "enforce today is considered as start date for today's tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "filter by my unread messages only",
            "in": "query",
            "name": "unreadMessagesMineOnly",
            "type": "boolean"
          },
          {
            "description": "filter by my unread comments only",
            "in": "query",
            "name": "unreadCommentsMineOnly",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "filter only project events",
            "in": "query",
            "name": "onlyProjectEvents",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched (deprecated, use matchAllProjectTags)",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include teams related to the taskAssigneeUserIds",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "count only events that the users are attending",
            "in": "query",
            "name": "eventsAttendingOnly",
            "type": "boolean"
          },
          {
            "description": "the since section will only use taskAssigneeUserIds if this flag is true\n(keeps backward compatibility)",
            "in": "query",
            "name": "applyTaskAssigneeUsersToSince",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when enabled unread counters will respect the time range period.",
            "in": "query",
            "name": "applySinceOnUnread",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by user ids who time logged",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "timeLoggedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with tasks assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskAssigneeUserIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "project health (deprecated, use projectHealths)\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with milestones assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "milestoneAssigneeUserIds",
            "type": "array"
          },
          {
            "description": "project healths (deprecated, use projectHealths)\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "health",
            "type": "array"
          },
          {
            "description": "filter by project tag ids (deprecated, use projectTagIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "filterTagIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "comments",
                "messages"
              ],
              "type": "string"
            },
            "name": "fields[unread]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "mine",
                "all"
              ],
              "type": "string"
            },
            "name": "fields[time]",
            "type": "array"
          },
          {
            "description": "sparse fields",
            "in": "query",
            "items": {
              "enum": [
                "everyone",
                "mine"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "count",
                "data"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "tasksComplete",
                "tasksCreated",
                "events",
                "dateTime"
              ],
              "type": "string"
            },
            "name": "fields[since]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "total",
                "open",
                "pending",
                "closed"
              ],
              "type": "string"
            },
            "name": "fields[risks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "everyone",
                "mine"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "description": "0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "string"
            },
            "name": "fields[health]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "fields[events]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "count",
                "data"
              ],
              "type": "string"
            },
            "name": "fields[columns]",
            "type": "array"
          },
          {
            "description": "filter by company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with tasks or milestones assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/summary.ProjectResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get project summary dashboard",
        "tags": [
          "Summary"
        ]
      }
    },
    "/projects/api/v3/projects/{projectIds}/updates.json": {
      "get": {
        "description": "Return the updates from a specific project.",
        "operationId": "GET_projects_api_v3_projects_{projectIds}_updates.json",
        "parameters": [
          {
            "description": "filter by updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "color",
              "health",
              "project",
              "user"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by creation date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectIds",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project id\n\nDeprecated: use ProjectIDs instead.",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "add reactions to the response",
            "in": "query",
            "name": "reactions",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "filter by active",
            "in": "query",
            "name": "activeOnly",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "createdBy",
                "deletedBy",
                "likes.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/update.ProjectUpdatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all updates from a specific project",
        "tags": [
          "ProjectUpdates"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}.json": {
      "get": {
        "description": "On this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects_{projectId}.json",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.responseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Returns a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/activity.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_projects_{projectId}_activity.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Deletes a projects activity log.",
        "tags": [
          "Activity"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/customfields.json": {
      "get": {
        "description": "Return all custom field values from a specific project.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_customfields.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "description": "filter by custom field ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customFieldIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseProject"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Project custom field values.",
        "tags": [
          "CustomFields"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a project custom field value.",
        "operationId": "POST_projects_api_v3_projects_{projectId}_customfields.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestProject",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestProject"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/value.responseProject"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Add project custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/customfields/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Remove many entries of project custom field values at once.",
        "operationId": "POST_projects_api_v3_projects_{projectId}_customfields_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkDeleteRequestProject",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkDeleteRequestProject"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many project custom fields values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/customfields/bulk/update.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit many entries of project custom field values at once.",
        "operationId": "POST_projects_api_v3_projects_{projectId}_customfields_bulk_update.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkUpdateRequestProject",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkUpdateRequestProject"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseProject"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update many project custom field values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json": {
      "delete": {
        "description": "Removes a project custom field value.",
        "operationId": "DELETE_projects_api_v3_projects_{projectId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing project custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "get": {
        "description": "Return a specific custom field value from a project.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseProject"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Project custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit a project custom field value.",
        "operationId": "PATCH_projects_api_v3_projects_{projectId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestProject",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestProject"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseProject"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing project custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/customitems.json": {
      "get": {
        "description": "Return all custom items for a specific project. Only filters that the logged-in user\nhas access will be returned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_customitems.json",
        "parameters": [
          {
            "description": "filter by custom items updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "createdBy",
                "updatedBy",
                "deletedBy",
                "customItemViews",
                "customItemFields",
                "customItemSections"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "displayName",
                "labelSingular",
                "labelPlural",
                "state",
                "relations",
                "fields",
                "views",
                "sections",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItems]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "viewTypeId",
                "displayName",
                "state",
                "displayOrder",
                "configuration",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemViews]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customItem",
                "displayName",
                "state",
                "displayOrder"
              ],
              "type": "string"
            },
            "name": "fields[customItemSections]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "customItemId",
                "displayName",
                "type",
                "definition",
                "twType",
                "twId",
                "state",
                "displayOrder",
                "options",
                "createdBy",
                "createdAt",
                "updatedBy",
                "updatedAt",
                "deletedBy",
                "deletedAt"
              ],
              "type": "string"
            },
            "name": "fields[customItemFields]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customitem.CustomItemsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get custom items for a specific project",
        "tags": [
          "CustomItems"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_projects_{projectId}_customitems.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "customitem.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customitem.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/customitem.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new customitem.",
        "tags": [
          "BETA"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/projects/{projectId}/featureorder.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projects_{projectId}_featureorder.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.FeatureOrderResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a project features order to display in tab",
        "tags": [
          "Projects"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Each field must have an index, from 0 to numFeatures -1\nwithout repeated numbers to provide the order\nto display the features",
        "operationId": "PUT_projects_api_v3_projects_{projectId}_featureorder.json",
        "parameters": [
          {
            "in": "body",
            "name": "project.FeatureOrderRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/project.FeatureOrderRequest"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.FeatureOrderResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Sets the the features order to display in tab",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/latestactivity.json": {
      "get": {
        "description": "Lists the latest activity for a specific project. When you access a project\nyou will see all the recent activity. This corresponds to that view in\nTeamwork. There is some parameters you can send in to filter your results.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_latestactivity.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fall back to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "group all activities on comments",
            "in": "query",
            "name": "groupCommentActivityType",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateTime",
                "activityType",
                "latestActivityType",
                "itemId",
                "itemLink",
                "itemType",
                "itemDescription",
                "itemExtraDescription",
                "itemExtraLink",
                "itemPublicInfo",
                "forUserId",
                "forUserName",
                "dueDate",
                "isPrivate",
                "lockdownId",
                "projectId",
                "companyId"
              ],
              "type": "string"
            },
            "name": "fields[activities]",
            "type": "array"
          },
          {
            "description": "filter by activity types",
            "in": "query",
            "items": {
              "enum": [
                "task",
                "tasklist",
                "project",
                "message",
                "notebook",
                "milestone",
                "like",
                "file",
                "link",
                "billinginvoice",
                "task_comment",
                "milestone_comment",
                "file_comment",
                "link_comment",
                "comment"
              ],
              "type": "string"
            },
            "name": "activityTypes",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/activity.ActivitiesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "List latest activity for a specific project.",
        "tags": [
          "Activity"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/milestones.json": {
      "get": {
        "description": "This lets you query the list of milestones for a project. You can use the\nprovided filters to return only those milestones that are incomplete,\ncompleted, upcoming or late. This call uses pagination, returning 100\nmilestones per page by default.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_milestones.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/milestone.MilestonesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get milestones in a project",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/notebooks.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_projects_{projectId}_notebooks.json",
        "parameters": [
          {
            "in": "body",
            "name": "notebook.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/notebook.Request"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "parse emojis to unicode",
            "in": "query",
            "name": "getEmoji",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "tags",
                "users",
                "notebookCategories",
                "companies",
                "teams"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "contents",
                "type",
                "isPrivate",
                "locked",
                "lockdownId",
                "secureContent",
                "projectId",
                "createdByUserID",
                "updatedByUserID",
                "deletedByUserID",
                "dateUpdated",
                "dateCreated",
                "dateDeleted",
                "deleted",
                "categoryId",
                "notebookVersionID",
                "notebookVersionCreatedDateTime",
                "notebookVersionUpdatedDateTime",
                "latestVersionNo",
                "commentsCount",
                "readCommentsCount",
                "contentHTML",
                "privacy",
                "commentFollowers",
                "changeFollowers",
                "projectNotifyCommentIncludeCreator",
                "tagIds"
              ],
              "type": "string"
            },
            "name": "fields[notebooks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[notebookCategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/notebook.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new notebook.",
        "tags": [
          "Notebooks"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/people.json": {
      "get": {
        "description": "Retrieve all people on the project.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_people.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "namecaseinsensitive",
              "company"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include project observers",
            "in": "query",
            "name": "includeObservers",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects.permissions",
                "users.integrations"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.MultiResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of people on a project",
        "tags": [
          "People"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Adds a list of user ID's to a project.",
        "operationId": "PUT_projects_api_v3_projects_{projectId}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "people.UsersPayload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/people.UsersPayload"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.AddPeopleToProjectResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Add people to a project",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/people/{personId}.json": {
      "get": {
        "description": "Retrieve a person record.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_people_{personId}.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "namecaseinsensitive",
              "company"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "personId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a person on a project",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/risks.json": {
      "get": {
        "description": "Return all risks for a specific project. Only filters that the logged-in user\nhas access will be returned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_risks.json",
        "parameters": [
          {
            "description": "filter by risks updated after specified date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by risks updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "sort order (deprecated, use orderMode)",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityTo",
            "type": "integer"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityFrom",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactTo",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactFrom",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact schedule",
            "in": "query",
            "name": "impactSchedule",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact performance",
            "in": "query",
            "name": "impactPerformance",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact cost",
            "in": "query",
            "name": "impactCost",
            "type": "boolean"
          },
          {
            "description": "filter by risk statuses",
            "in": "query",
            "items": {
              "enum": [
                "new",
                "pending",
                "closed"
              ],
              "type": "string"
            },
            "name": "statuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "source",
                "probability",
                "probabilityValue",
                "impact",
                "impactValue",
                "impactCost",
                "impactSchedule",
                "impactPerformance",
                "createdOn",
                "createdByUserId",
                "lastChangedOn",
                "lastChangedByUserId",
                "result",
                "mitigationPlan",
                "stats",
                "projectId",
                "deleted",
                "canEdit"
              ],
              "type": "string"
            },
            "name": "fields[risks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/risk.RisksResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get risks for a specific project",
        "tags": [
          "Risks"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a risk in the desired project.",
        "operationId": "POST_projects_api_v3_projects_{projectId}_risks.json",
        "parameters": [
          {
            "in": "body",
            "name": "risk.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/risk.Request"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/risk.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a risk in a specific project.",
        "tags": [
          "Risks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/projects/{projectId}/risks/copy.json": {
      "put": {
        "description": "Copies the risk register from one project to another.",
        "operationId": "PUT_projects_api_v3_projects_{projectId}_risks_copy.json",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Copies project risks",
        "tags": [
          "Risks"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasklists.csv": {
      "get": {
        "description": "Generates a task list report in CSV format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will be\nreturned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasklists.csv",
        "parameters": [
          {
            "default": "anytime",
            "description": "filter by task date",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskDate",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "manual",
            "description": "order by",
            "enum": [
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedatdesc",
              "completedat",
              "duestartdate",
              "duestartdatedesc",
              "alldates",
              "alldatesdesc",
              "duedateDESC",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode of the comments",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "commentsOrderMode",
            "type": "string"
          },
          {
            "description": "filter by task list",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "onlyCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include time",
            "in": "query",
            "name": "includeTime",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include stages",
            "in": "query",
            "name": "includeStages",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include late tasks",
            "in": "query",
            "name": "includeLateTasks",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include estimated time",
            "in": "query",
            "name": "includeEstimatedTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include comments",
            "in": "query",
            "name": "includeComments",
            "type": "boolean"
          },
          {
            "description": "include comment avatars",
            "in": "query",
            "name": "includeCommentAvatars",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include columns",
            "in": "query",
            "name": "includeColumns",
            "type": "boolean"
          },
          {
            "description": "include anytime tasks",
            "in": "query",
            "name": "includeAnytimeTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "ignore task start dates",
            "in": "query",
            "name": "ignoreStartDates",
            "type": "boolean"
          },
          {
            "description": "group by task lists",
            "in": "query",
            "name": "groupByTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by tag names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate tasklist report in CSV format",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasklists.html": {
      "get": {
        "description": "Generates a task list report in HTML format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will be\nreturned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasklists.html",
        "parameters": [
          {
            "default": "anytime",
            "description": "filter by task date",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskDate",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "manual",
            "description": "order by",
            "enum": [
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedatdesc",
              "completedat",
              "duestartdate",
              "duestartdatedesc",
              "alldates",
              "alldatesdesc",
              "duedateDESC",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode of the comments",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "commentsOrderMode",
            "type": "string"
          },
          {
            "description": "filter by task list",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "onlyCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include time",
            "in": "query",
            "name": "includeTime",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include stages",
            "in": "query",
            "name": "includeStages",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include late tasks",
            "in": "query",
            "name": "includeLateTasks",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include estimated time",
            "in": "query",
            "name": "includeEstimatedTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include comments",
            "in": "query",
            "name": "includeComments",
            "type": "boolean"
          },
          {
            "description": "include comment avatars",
            "in": "query",
            "name": "includeCommentAvatars",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include columns",
            "in": "query",
            "name": "includeColumns",
            "type": "boolean"
          },
          {
            "description": "include anytime tasks",
            "in": "query",
            "name": "includeAnytimeTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "ignore task start dates",
            "in": "query",
            "name": "ignoreStartDates",
            "type": "boolean"
          },
          {
            "description": "group by task lists",
            "in": "query",
            "name": "groupByTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by tag names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate tasklist report in HTML format",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasklists.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasklists.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "status",
              "createdat",
              "updatedat",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "nil",
            "description": "filter the task list budget by its parent project budget id, if none\nis provided it weill default to the current active budget.",
            "in": "query",
            "name": "projectBudgetId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort default list first",
            "in": "query",
            "name": "sortDefaultListFirst",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active lists first, sortDefaultListFirst take precedence over this",
            "in": "query",
            "name": "sortActiveListsFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include completed items",
            "in": "query",
            "name": "showCompleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "this means use the tasklist report endpoint, which has totally different query params",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include empty lists",
            "in": "query",
            "name": "getEmptyLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only completed items",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateDates",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "defaultTasks",
                "defaultTasks.users",
                "defaultTasks.teams",
                "defaultTasks.reminders",
                "defaultTasks.customfields",
                "defaultTasks.companies",
                "createdBy",
                "updatedBy",
                "companies",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "milestones",
                "defaultCustomfields",
                "defaultCustomfieldTasks",
                "defaultColumns",
                "defaultWorkflowStages",
                "defaultWorkflows",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "default": "nil",
            "description": "Exclude certain tasklists from the response",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklist.TasklistsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get tasklists in a project",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasklists.pdf": {
      "get": {
        "description": "Generates a task list report in PDF format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will be\nreturned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasklists.pdf",
        "parameters": [
          {
            "default": "anytime",
            "description": "filter by task date",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskDate",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "manual",
            "description": "order by",
            "enum": [
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedatdesc",
              "completedat",
              "duestartdate",
              "duestartdatedesc",
              "alldates",
              "alldatesdesc",
              "duedateDESC",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode of the comments",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "commentsOrderMode",
            "type": "string"
          },
          {
            "description": "filter by task list",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "onlyCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include time",
            "in": "query",
            "name": "includeTime",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include stages",
            "in": "query",
            "name": "includeStages",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include late tasks",
            "in": "query",
            "name": "includeLateTasks",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include estimated time",
            "in": "query",
            "name": "includeEstimatedTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include comments",
            "in": "query",
            "name": "includeComments",
            "type": "boolean"
          },
          {
            "description": "include comment avatars",
            "in": "query",
            "name": "includeCommentAvatars",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include columns",
            "in": "query",
            "name": "includeColumns",
            "type": "boolean"
          },
          {
            "description": "include anytime tasks",
            "in": "query",
            "name": "includeAnytimeTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "ignore task start dates",
            "in": "query",
            "name": "ignoreStartDates",
            "type": "boolean"
          },
          {
            "description": "group by task lists",
            "in": "query",
            "name": "groupByTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by tag names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate tasklist report in PDF format",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasklists.xlsx": {
      "get": {
        "description": "Generates a task list report in XLSX format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will be\nreturned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasklists.xlsx",
        "parameters": [
          {
            "default": "anytime",
            "description": "filter by task date",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskDate",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "manual",
            "description": "order by",
            "enum": [
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedatdesc",
              "completedat",
              "duestartdate",
              "duestartdatedesc",
              "alldates",
              "alldatesdesc",
              "duedateDESC",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode of the comments",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "commentsOrderMode",
            "type": "string"
          },
          {
            "description": "filter by task list",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "onlyCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include time",
            "in": "query",
            "name": "includeTime",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include stages",
            "in": "query",
            "name": "includeStages",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include late tasks",
            "in": "query",
            "name": "includeLateTasks",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include estimated time",
            "in": "query",
            "name": "includeEstimatedTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include comments",
            "in": "query",
            "name": "includeComments",
            "type": "boolean"
          },
          {
            "description": "include comment avatars",
            "in": "query",
            "name": "includeCommentAvatars",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include columns",
            "in": "query",
            "name": "includeColumns",
            "type": "boolean"
          },
          {
            "description": "include anytime tasks",
            "in": "query",
            "name": "includeAnytimeTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "ignore task start dates",
            "in": "query",
            "name": "ignoreStartDates",
            "type": "boolean"
          },
          {
            "description": "group by task lists",
            "in": "query",
            "name": "groupByTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by tag names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate tasklist report in XLSX format",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/tasks.json": {
      "get": {
        "description": "Return multiple tasks according to the provided filter.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_projects_{projectId}_tasks.json",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.tasksResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific project's tasks.",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/time.json": {
      "get": {
        "description": "Return logged time entries for a specific project. Only the time entries that\nthe logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_time.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time entries for a specific project",
        "tags": [
          "TimeTracking"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a time entry in the desired project.",
        "operationId": "POST_projects_api_v3_projects_{projectId}_time.json",
        "parameters": [
          {
            "in": "body",
            "name": "timelog.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timelog.Request"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/timelog.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a time entry in a specific project.",
        "tags": [
          "TimeTracking"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/projects/{projectId}/time/total.json": {
      "get": {
        "operationId": "GET_projects_api_v3_projects_{projectId}_time_total.json",
        "parameters": [
          {
            "description": "filter by updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by user id (deprecated, use assignedToUserIds)",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "filter by desk ticket id",
            "in": "query",
            "name": "deskTicketId",
            "type": "integer"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "get subtask totals",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by user ids (deprecated, use assignedToUserIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by timelog tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by sub-task status, includeDescendants must be set to true\nfor this to have any effect",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "completed",
                "incomplete"
              ],
              "type": "string"
            },
            "name": "subTaskStatuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog totals for a specific project.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/workflows.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_projects_{projectId}_workflows.json",
        "parameters": [
          {
            "in": "body",
            "name": "workflow.ApplyProjectRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/workflow.ApplyProjectRequest"
            }
          },
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/workflow.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Applies a workflow to a project",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/quote.json": {
      "post": {
        "operationId": "POST_projects_api_v3_quote.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.QuoteResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new quote.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/section/{id}.json": {
      "patch": {
        "operationId": "PATCH_projects_api_v3_quote_section_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotesection.QuoteSectionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a quote section.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/sections/bulk/update.json": {
      "put": {
        "operationId": "PUT_projects_api_v3_quote_sections_bulk_update.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a list of quote sections.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/{id}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_quote_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete a quote.",
        "tags": [
          "Quotes"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_quote_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "include section items",
            "in": "query",
            "name": "includeSectionItems",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "companies",
                "projects",
                "currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.QuoteResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a quote by ID.",
        "tags": [
          "Quotes"
        ]
      },
      "patch": {
        "operationId": "PATCH_projects_api_v3_quote_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.QuoteResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a quote.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/{quoteId}/lineitem/{id}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_quote_{quoteId}_lineitem_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "quoteId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotelineitem.QuoteLineItemResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Deletes quote line items.",
        "tags": [
          "Quotes"
        ]
      },
      "patch": {
        "operationId": "PATCH_projects_api_v3_quote_{quoteId}_lineitem_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "quoteId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotelineitem.QuoteLineItemResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a quote line item.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/{quoteId}/lineitems.json": {
      "post": {
        "operationId": "POST_projects_api_v3_quote_{quoteId}_lineitems.json",
        "parameters": [
          {
            "in": "path",
            "name": "quoteId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotelineitem.QuoteLineItemResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new quote line item.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/{quoteId}/lineitems/bulk/delete": {
      "post": {
        "operationId": "POST_projects_api_v3_quote_{quoteId}_lineitems_bulk_delete",
        "parameters": [
          {
            "in": "path",
            "name": "quoteId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotelineitem.QuoteLineItemResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Deletes quote line items.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quote/{quoteId}/section.json": {
      "post": {
        "operationId": "POST_projects_api_v3_quote_{quoteId}_section.json",
        "parameters": [
          {
            "in": "path",
            "name": "quoteId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotesection.QuoteSectionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new quote section.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quotesettings.json": {
      "get": {
        "operationId": "GET_projects_api_v3_quotesettings.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotesetting.QuoteSettingResponse"
            }
          }
        },
        "summary": "Get quote settings for the current installation.",
        "tags": [
          "QuoteSettings"
        ]
      },
      "put": {
        "operationId": "PUT_projects_api_v3_quotesettings.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quotesetting.QuoteSettingResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update quote settings.",
        "tags": [
          "QuoteSettings"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/budgets.json": {
      "get": {
        "description": "This returns data for a budget chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_budgets.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "budget.project",
              "budget.company",
              "budget.type",
              "budget.timelog_type",
              "budget.category",
              "budget.currency",
              "budget.status",
              "budget.usage",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "datecreated",
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "budget.project",
              "budget.company",
              "budget.type",
              "budget.timelog_type",
              "budget.category",
              "budget.currency",
              "budget.status",
              "budget.usage",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by budget type",
            "enum": [
              "all",
              "financial",
              "time"
            ],
            "in": "query",
            "name": "budgetType",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects.categories",
                "projects.companies",
                "projectOwners"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "list of project budget status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "active",
                "archived",
                "deleted",
                "invalid",
                "completed",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "budgetStatuses",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by budget category",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "retainer",
                "standard",
                "fixedfee"
              ],
              "type": "string"
            },
            "name": "budgetCategories",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get budget chart data.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/estimation.json": {
      "get": {
        "description": "Returns aggregate counts of overestimated, underestimated, and within-margin\ntasks along with the overall estimation accuracy score for the given filters.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_estimation.json",
        "parameters": [
          {
            "description": "filter tasks completed on or after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by task name or project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "task",
            "description": "order by field",
            "enum": [
              "task",
              "project",
              "loggedTime",
              "estimatedTime",
              "estimationAccuracy",
              "completedDate"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter tasks completed on or before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items per page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "10",
            "description": "percentage margin within which a task is considered on target (0–100)",
            "in": "query",
            "name": "acceptanceThreshold",
            "type": "integer"
          },
          {
            "description": "filter by task list IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskListIds",
            "type": "array"
          },
          {
            "description": "filter by task IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by project IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "related entities to sideload in the response",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "tasks",
                "projects"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by estimation status",
            "in": "query",
            "items": {
              "enum": [
                "overestimated",
                "underestimated",
                "withinmargin",
                "nonestimated"
              ],
              "type": "string"
            },
            "name": "estimationStatuses",
            "type": "array"
          },
          {
            "description": "filter by company IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.EstimationTotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get estimation totals.",
        "tags": [
          "Estimation"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/milestones.json": {
      "get": {
        "description": "This returns aggregated milestone data for a chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_milestones.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get milestone chart data.",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/projects.json": {
      "get": {
        "description": "This returns data for a project chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_projects.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "project.status",
              "project.category",
              "project.update_health",
              "project.owner",
              "project.company",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "datecreated",
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "project.status",
              "project.category",
              "project.update_health",
              "project.owner",
              "project.company",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects.categories",
                "projects.companies",
                "projectOwners"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get project chart data.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/risks.json": {
      "get": {
        "description": "This returns aggregated risk data for a chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_risks.json",
        "parameters": [
          {
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get risk chart data.",
        "tags": [
          "Risks"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/tasks.json": {
      "get": {
        "description": "This returns data for a task chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_tasks.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "task.tasklist",
              "task.project",
              "task.company",
              "task.priority",
              "task.assignee_user",
              "task.assignee_team",
              "task.assignee_company",
              "task.workflow_stages",
              "task.status",
              "task.start_date",
              "task.due_date",
              "task.created_date",
              "task.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "taskname",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "dateadded",
              "taskname",
              "priority"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "task.tasklist",
              "task.project",
              "task.company",
              "task.priority",
              "task.assignee_user",
              "task.assignee_team",
              "task.assignee_company",
              "task.workflow_stages",
              "task.status",
              "task.start_date",
              "task.due_date",
              "task.created_date",
              "task.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by task workflow stage ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowStageIds",
            "type": "array"
          },
          {
            "description": "filter by task workflow ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "enum": [
                "completed",
                "started",
                "late",
                "upcoming",
                "today"
              ],
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "task.tasklist",
                "task.project",
                "task.company",
                "task.assignee_user",
                "task.assignee_team",
                "task.assignee_company",
                "task.workflow_stages"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get task chart data.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/data/timelogs.json": {
      "get": {
        "description": "This returns aggregated timelog data for a chart, using the provided\nfilters, group by, split by and data points.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_data_timelogs.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskListIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.DashboardDataResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog chart data.",
        "tags": [
          "Timelogs"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/budgets.json": {
      "get": {
        "description": "This returns a list of budgets matching a budget chart filter.\nUsed for quick views and similar UI elements",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_budgets.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "budget.project",
              "budget.company",
              "budget.type",
              "budget.timelog_type",
              "budget.category",
              "budget.currency",
              "budget.status",
              "budget.usage",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "datecreated",
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "budget.project",
              "budget.company",
              "budget.type",
              "budget.timelog_type",
              "budget.category",
              "budget.currency",
              "budget.status",
              "budget.usage",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by budget type",
            "enum": [
              "all",
              "financial",
              "time"
            ],
            "in": "query",
            "name": "budgetType",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects.categories",
                "projects.companies",
                "projectOwners"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "list of project budget status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "active",
                "archived",
                "deleted",
                "invalid",
                "completed",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "budgetStatuses",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by budget category",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "retainer",
                "standard",
                "fixedfee"
              ],
              "type": "string"
            },
            "name": "budgetCategories",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/projectbudget.BudgetsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get budget chart details.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/estimation.json": {
      "get": {
        "description": "Returns a paginated list of completed tasks with their estimated vs logged time,\naccuracy score, and assignees. Supports filtering by status, project, company,\ntask list, and free-text search. Sorting and sideloading of related entities\n(users, tasks, projects) are also supported.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_estimation.json",
        "parameters": [
          {
            "description": "filter tasks completed on or after this date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by task name or project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "task",
            "description": "order by field",
            "enum": [
              "task",
              "project",
              "loggedTime",
              "estimatedTime",
              "estimationAccuracy",
              "completedDate"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter tasks completed on or before this date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items per page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "10",
            "description": "percentage margin within which a task is considered on target (0–100)",
            "in": "query",
            "name": "acceptanceThreshold",
            "type": "integer"
          },
          {
            "description": "filter by task list IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskListIds",
            "type": "array"
          },
          {
            "description": "filter by task IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by project IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "related entities to sideload in the response",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "tasks",
                "projects"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by estimation status",
            "in": "query",
            "items": {
              "enum": [
                "overestimated",
                "underestimated",
                "withinmargin",
                "nonestimated"
              ],
              "type": "string"
            },
            "name": "estimationStatuses",
            "type": "array"
          },
          {
            "description": "filter by company IDs",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/container.EstimationDetailsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get estimation details.",
        "tags": [
          "Estimation"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/milestones.json": {
      "get": {
        "description": "Returns a paginated list of milestones with their full entity data.\nSupports filtering by project, company, date range, and free-text search.\nSorting and sideloading of related entities are also supported.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_milestones.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/milestone.MilestoneDetailsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get milestone details.",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/projects.json": {
      "get": {
        "description": "This returns a list of projects matching a project chart filter.\nUsed for quick views and similar UI elements",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_projects.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "project.status",
              "project.category",
              "project.update_health",
              "project.owner",
              "project.company",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "datecreated",
              "name"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "project.status",
              "project.category",
              "project.update_health",
              "project.owner",
              "project.company",
              "project.start_date",
              "project.end_date",
              "project.created_date",
              "project.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects.categories",
                "projects.companies",
                "projectOwners"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.projectsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get project chart details.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/risks.json": {
      "get": {
        "description": "Returns a paginated list of risks with their full entity data.\nSupports filtering by project and company, plus free-text search.\nSorting and sideloading of related entities are also supported.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_risks.json",
        "parameters": [
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/risk.RiskDetailsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get risk details.",
        "tags": [
          "Risks"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/tasks.json": {
      "get": {
        "description": "This returns a list of tasks matching a task chart filter.\nUsed for quick views and similar UI elements",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_tasks.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "none",
            "description": "split by entity",
            "enum": [
              "task.tasklist",
              "task.project",
              "task.company",
              "task.priority",
              "task.assignee_user",
              "task.assignee_team",
              "task.assignee_company",
              "task.workflow_stages",
              "task.status",
              "task.start_date",
              "task.due_date",
              "task.created_date",
              "task.completed_date"
            ],
            "in": "query",
            "name": "splitBy",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "taskname",
            "description": "order by",
            "enum": [
              "startdate",
              "duedate",
              "dateadded",
              "taskname",
              "priority"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "data point",
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "default": "none",
            "description": "group by entity",
            "enum": [
              "task.tasklist",
              "task.project",
              "task.company",
              "task.priority",
              "task.assignee_user",
              "task.assignee_team",
              "task.assignee_company",
              "task.workflow_stages",
              "task.status",
              "task.start_date",
              "task.due_date",
              "task.created_date",
              "task.completed_date"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "filter by task workflow stage ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowStageIds",
            "type": "array"
          },
          {
            "description": "filter by task workflow ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "enum": [
                "completed",
                "started",
                "late",
                "upcoming",
                "today"
              ],
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "task.tasklist",
                "task.project",
                "task.company",
                "task.assignee_user",
                "task.assignee_team",
                "task.assignee_company",
                "task.workflow_stages"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.TasksResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get task chart details.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/reporting/dashboards/details/timelogs.json": {
      "get": {
        "description": "Returns a paginated list of timelogs with their full entity data.\nSupports filtering by project, user, company, task, task list, date range,\nand free-text search. Sorting and sideloading of related entities are also supported.",
        "operationId": "GET_projects_api_v3_reporting_dashboards_details_timelogs.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskListIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TimelogDetailsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog details.",
        "tags": [
          "Timelogs"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/budget/report.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget_report.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by project or company",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "budgetStatus",
              "budgetAmountFinancial",
              "budgetAmountTime",
              "budgetUsedFinancial",
              "budgetUsedTime",
              "budgetUsedPercentage",
              "budgetRemainingFinancial",
              "budgetRemainingTime",
              "billableTime",
              "nonBillableTime",
              "profit",
              "profitPercentage",
              "billableTotal",
              "revenueTimeBased",
              "revenueExpenses",
              "totalCost",
              "costTimeBased",
              "costBillableTimeBased",
              "costNonBillableTimeBased",
              "costExpenses"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "budget end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "allow to expand all projects rows",
            "in": "query",
            "name": "expandAllProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all project budget rows",
            "in": "query",
            "name": "expandAllProjectBudgets",
            "type": "boolean"
          },
          {
            "description": "allow to expand all companies rows",
            "in": "query",
            "name": "expandAllCompanies",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed",
            "in": "query",
            "items": {
              "enum": [
                "name",
                "budgetStatus",
                "budgetAmountFinancial",
                "budgetAmountTime",
                "budgetUsedFinancial",
                "budgetUsedTime",
                "budgetUsedPercentage",
                "budgetRemainingFinancial",
                "budgetRemainingTime",
                "billableTime",
                "nonBillableTime",
                "profit",
                "profitPercentage",
                "billableTotal",
                "revenueTimeBased",
                "revenueExpenses",
                "totalCost",
                "costTimeBased",
                "costBillableTimeBased",
                "costNonBillableTimeBased",
                "costExpenses"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "projects.budgets",
                "tasklists.budgets",
                "project.tasklists",
                "tasklists",
                "taskliststats",
                "milestones"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "expand given project rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectIds",
            "type": "array"
          },
          {
            "description": "expand given project budget rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectBudgetIds",
            "type": "array"
          },
          {
            "description": "expand given company rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/budgetreport.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get budget report",
        "tags": [
          "BudgetReport"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/budget/report//totals.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget_report__totals.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by project or company",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "budgetStatus",
              "budgetAmountFinancial",
              "budgetAmountTime",
              "budgetUsedFinancial",
              "budgetUsedTime",
              "budgetUsedPercentage",
              "budgetRemainingFinancial",
              "budgetRemainingTime",
              "billableTime",
              "nonBillableTime",
              "profit",
              "profitPercentage",
              "billableTotal",
              "revenueTimeBased",
              "revenueExpenses",
              "totalCost",
              "costTimeBased",
              "costBillableTimeBased",
              "costNonBillableTimeBased",
              "costExpenses"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "budget end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "allow to expand all projects rows",
            "in": "query",
            "name": "expandAllProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all project budget rows",
            "in": "query",
            "name": "expandAllProjectBudgets",
            "type": "boolean"
          },
          {
            "description": "allow to expand all companies rows",
            "in": "query",
            "name": "expandAllCompanies",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed",
            "in": "query",
            "items": {
              "enum": [
                "name",
                "budgetStatus",
                "budgetAmountFinancial",
                "budgetAmountTime",
                "budgetUsedFinancial",
                "budgetUsedTime",
                "budgetUsedPercentage",
                "budgetRemainingFinancial",
                "budgetRemainingTime",
                "billableTime",
                "nonBillableTime",
                "profit",
                "profitPercentage",
                "billableTotal",
                "revenueTimeBased",
                "revenueExpenses",
                "totalCost",
                "costTimeBased",
                "costBillableTimeBased",
                "costNonBillableTimeBased",
                "costExpenses"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "projects.budgets",
                "tasklists.budgets",
                "project.tasklists",
                "tasklists",
                "taskliststats",
                "milestones"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "expand given project rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectIds",
            "type": "array"
          },
          {
            "description": "expand given project budget rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectBudgetIds",
            "type": "array"
          },
          {
            "description": "expand given company rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/view.BudgetReportTotals"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get budget report totals",
        "tags": [
          "BudgetReport"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/budget/report/{type}/{id}.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget_report_{type}_{id}.json",
        "parameters": [
          {
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by project or company",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "budgetStatus",
              "budgetAmountFinancial",
              "budgetAmountTime",
              "budgetUsedFinancial",
              "budgetUsedTime",
              "budgetUsedPercentage",
              "budgetRemainingFinancial",
              "budgetRemainingTime",
              "billableTime",
              "nonBillableTime",
              "profit",
              "profitPercentage",
              "billableTotal",
              "revenueTimeBased",
              "revenueExpenses",
              "totalCost",
              "costTimeBased",
              "costBillableTimeBased",
              "costNonBillableTimeBased",
              "costExpenses"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "budget end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "allow to expand all projects rows",
            "in": "query",
            "name": "expandAllProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all project budget rows",
            "in": "query",
            "name": "expandAllProjectBudgets",
            "type": "boolean"
          },
          {
            "description": "allow to expand all companies rows",
            "in": "query",
            "name": "expandAllCompanies",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed",
            "in": "query",
            "items": {
              "enum": [
                "name",
                "budgetStatus",
                "budgetAmountFinancial",
                "budgetAmountTime",
                "budgetUsedFinancial",
                "budgetUsedTime",
                "budgetUsedPercentage",
                "budgetRemainingFinancial",
                "budgetRemainingTime",
                "billableTime",
                "nonBillableTime",
                "profit",
                "profitPercentage",
                "billableTotal",
                "revenueTimeBased",
                "revenueExpenses",
                "totalCost",
                "costTimeBased",
                "costBillableTimeBased",
                "costNonBillableTimeBased",
                "costExpenses"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "projects.budgets",
                "tasklists.budgets",
                "project.tasklists",
                "tasklists",
                "taskliststats",
                "milestones"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter object body",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "expand given project rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectIds",
            "type": "array"
          },
          {
            "description": "expand given project budget rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedProjectBudgetIds",
            "type": "array"
          },
          {
            "description": "expand given company rows",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/budgetreport.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get object details",
        "tags": [
          "BudgetReport"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/companytime.json": {
      "get": {
        "description": "Return all logged time entries for all projects grouped by company ID.\nOnly the time entries that the logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_companytime.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.CompanyTimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all time entries, grouped by company ID",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/health/projects.csv": {
      "get": {
        "description": "Generates a project report in CSV format containing all projects for the\nprovided filters. Only the projects that the logged-in user can access will\nbe returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_reporting_precanned_health_projects.csv",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate project report in CSV format",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/health/projects.html": {
      "get": {
        "description": "Generates a project report in HTML format containing all projects for the\nprovided filters. Only the projects that the logged-in user can access will\nbe returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_reporting_precanned_health_projects.html",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate project report in HTML format",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/health/projects.pdf": {
      "get": {
        "description": "Generates a project report in PDF format containing all projects for the\nprovided filters. Only the projects that the logged-in user can access will\nbe returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_reporting_precanned_health_projects.pdf",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate project report in PDF format",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/health/projects.xlsx": {
      "get": {
        "description": "Generates a project report in XLSX format containing all projects for the\nprovided filters. Only the projects that the logged-in user can access will\nbe returned.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_reporting_precanned_health_projects.xlsx",
        "parameters": [
          {
            "description": "updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "profitability time mode",
            "enum": [
              "timelogs",
              "estimated"
            ],
            "in": "query",
            "name": "timeMode",
            "type": "string"
          },
          {
            "description": "filter by project name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "project",
            "description": "define the type of the report",
            "enum": [
              "project",
              "health"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "Optional to configure the report dates displayed in a timezone",
            "in": "query",
            "name": "reportTimezone",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "csv",
              "html",
              "pdf",
              "xls"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter by min last activity date",
            "format": "date",
            "in": "query",
            "name": "minLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by max last activity date",
            "format": "date",
            "in": "query",
            "name": "maxLastActivityDate",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "filter by minimum budget capacity used",
            "in": "query",
            "name": "minBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "filter by maximum budget capacity used",
            "in": "query",
            "name": "maxBudgetCapacityUsedPercent",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include companies in the search",
            "in": "query",
            "name": "searchCompanies",
            "type": "boolean"
          },
          {
            "description": "search projects beginning with the search term character only when it contains a single character.",
            "in": "query",
            "name": "searchByLetter",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only show projects with explicit membership",
            "in": "query",
            "name": "onlyProjectsWithExplicitMembership",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only projects the logged-in user has admin permissions on",
            "in": "query",
            "name": "onlyProjectsWithAdminAccess",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can log time on projects",
            "in": "query",
            "name": "onlyProjectsThatCanLogTime",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "can add tasks on projects",
            "in": "query",
            "name": "onlyProjectsThatCanAddTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return only archived projects",
            "in": "query",
            "name": "onlyArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include alongside normal projects, tentative ones",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include sub categories when filtering by ids",
            "in": "query",
            "name": "includeSubCategories",
            "type": "boolean"
          },
          {
            "description": "include project status counts for tasks columns billing events milestones",
            "in": "query",
            "name": "includeStats",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "description": "include project profitability in response",
            "in": "query",
            "name": "includeProjectProfitability",
            "type": "boolean"
          },
          {
            "description": "include minimum and maximum start/end dates for projects",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include project related counts",
            "in": "query",
            "name": "includeCounts",
            "type": "boolean"
          },
          {
            "description": "optional to include completed projects when filtering by project statuses \"current,late\".",
            "in": "query",
            "name": "includeCompletedStatus",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "hide projects where the logged-in user is just an observer",
            "in": "query",
            "name": "hideObservedProjects",
            "type": "boolean"
          },
          {
            "description": "includes filters when project ids are provided",
            "in": "query",
            "name": "alwaysIncludeFiltering",
            "type": "boolean"
          },
          {
            "description": "only show projects that have an explicit common membership with provided user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "usersWithExplicitMembershipIds",
            "type": "array"
          },
          {
            "description": "filter by projects that contain users associated with the team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "select the columns to use in exports.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "projectOwners",
                "projectUpdates",
                "companies",
                "companies.countries",
                "companies.industries",
                "companies.currencies",
                "projectCategories",
                "portfolioCards",
                "portfolioBoards",
                "portfolioColumns",
                "tags",
                "customfields",
                "customfieldProjects",
                "projectBudgets",
                "activities.latest",
                "users",
                "createdBy",
                "updatedBy",
                "completedBy",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "text",
                "isActive",
                "health",
                "color",
                "dateCreated",
                "deleted",
                "deletedDate",
                "numLikes",
                "reactions"
              ],
              "type": "string"
            },
            "name": "fields[projectUpdates]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "type",
                "status",
                "capacityUsed",
                "capacity",
                "originatorBudgetId",
                "isRepeating",
                "repeatPeriod",
                "repeatUnit",
                "repeatsRemaining",
                "sequenceNumber",
                "startDateTime",
                "endDateTime",
                "currencyCode",
                "timelogType",
                "expenseType",
                "defaultRate",
                "notificationIds",
                "createdByUserId",
                "dateCreated",
                "updatedUserId",
                "dateUpdated",
                "completedByUserId",
                "dateCompleted",
                "deletedByUserId",
                "dateDeleted"
              ],
              "type": "string"
            },
            "name": "fields[projectBudgets]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioColumns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "columnId",
                "projectId"
              ],
              "type": "string"
            },
            "name": "fields[portfolioCards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color"
              ],
              "type": "string"
            },
            "name": "fields[portfolioBoards]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[industries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldProjects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "fields[countries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "featuresEnabled",
            "type": "array"
          },
          {
            "description": "exclude by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "exclude certain project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate project report in XLSX format",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/milestones.csv": {
      "get": {
        "description": "Generates a milestone report in CSV format containing all milestones for the\nprovided filters. Only the milestones that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_milestones.csv",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate milestone report in CSV format",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/milestones.html": {
      "get": {
        "description": "Generates a milestone report in HTML format containing all milestones for the\nprovided filters. Only the milestones that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_milestones.html",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate milestone report in HTML format",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/milestones.pdf": {
      "get": {
        "description": "Generates a milestone report in PDF format containing all milestones for the\nprovided filters. Only the milestones that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_milestones.pdf",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate milestone report in PDF format",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/milestones.xlsx": {
      "get": {
        "description": "Generates a milestone report in XLSX format containing all milestones for the\nprovided filters. Only the milestones that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_milestones.xlsx",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by milestone name and description",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "agenda",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "calendar",
              "agenda"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "order by",
            "enum": [
              "date",
              "dateonly",
              "name",
              "project",
              "user",
              "dateCreated",
              "dateUpdated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by due before date (deprecated, use dueBefore)",
            "format": "date",
            "in": "query",
            "name": "dueBeforeDate",
            "type": "string"
          },
          {
            "description": "filter by due before date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter by due after date (deprecated, use dueAfter)",
            "format": "date",
            "in": "query",
            "name": "dueAfterDate",
            "type": "string"
          },
          {
            "description": "filter by due after date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "show private milestones",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "show attached tasklists",
            "in": "query",
            "name": "showAttachedTasklists",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "progress",
            "type": "boolean"
          },
          {
            "description": "only without tasklists",
            "in": "query",
            "name": "onlyWithoutTasklists",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by projects that the logged-in user is related",
            "in": "query",
            "name": "onlyMyProjects",
            "type": "boolean"
          },
          {
            "description": "only include milestones from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "match all milestone tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include milestones latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include today when milestone status is upcoming",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include tags in the reports",
            "in": "query",
            "name": "includeTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)",
            "in": "query",
            "name": "includeProgress",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include percentage of tasks completed for all linked tasklists",
            "in": "query",
            "name": "includePercentageComplete",
            "type": "boolean"
          },
          {
            "description": "optional to include completed milestones",
            "in": "query",
            "name": "includeCompleted",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "convert emoji alias to unicode",
            "in": "query",
            "name": "emoji",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "count unread comments",
            "in": "query",
            "name": "countUnreadComments",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enables the calendar style layout",
            "in": "query",
            "name": "calendar",
            "type": "boolean"
          },
          {
            "description": "filter by milestone tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of milestone status",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "new",
                "reopened",
                "completed",
                "deleted",
                "pending",
                "incomplete",
                "late",
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by list of project health (deprecated, use projectHealths)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "users",
                "completedBy",
                "createdBy",
                "deletedBy",
                "updatedBy",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "tags",
                "tasklists",
                "tasklisttaskstats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followers' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followerIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by creators' ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate milestone report in XLSX format",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/tasks.csv": {
      "get": {
        "description": "Generates a plannedvsactual report in CSV format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_tasks.csv",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate plannedvsactual report in CSV format",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/tasks.html": {
      "get": {
        "description": "Generates a plannedvsactual report in HTML format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_tasks.html",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate plannedvsactual report in HTML format",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/tasks.pdf": {
      "get": {
        "description": "Generates a plannedvsactual report in PDF format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_tasks.pdf",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate plannedvsactual report in PDF format",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/plannedvsactual/tasks.xlsx": {
      "get": {
        "description": "Generates a plannedvsactual report in XLSX format containing all tasks for the\nprovided filters. Only the tasks that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_plannedvsactual_tasks.xlsx",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate plannedvsactual report in XLSX format",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/usertaskcompletion.json": {
      "get": {
        "description": "Retrieve all people for the provided filters and their task completions.",
        "operationId": "GET_projects_api_v3_reporting_precanned_usertaskcompletion.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "start date for task completion report",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "id",
              "name",
              "namecaseinsensitive",
              "overduetasks",
              "assignedtasks",
              "completedtasks",
              "projects",
              "activeprojects",
              "(depreciated)"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "description": "end date for task completion report",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects in the report",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "filter users by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userProjectIds",
            "type": "array"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.TaskCompletionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns task completions for all users",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/usertaskcompletion/{userId}.json": {
      "get": {
        "description": "Retrieve a person record and its task completion stats.",
        "operationId": "GET_projects_api_v3_reporting_precanned_usertaskcompletion_{userId}.json",
        "parameters": [
          {
            "description": "user type",
            "enum": [
              "account",
              "collaborator",
              "contact"
            ],
            "in": "query",
            "name": "userType",
            "type": "string"
          },
          {
            "description": "date time",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "start date for task completion report",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by comment content",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "id",
              "name",
              "namecaseinsensitive",
              "overduetasks",
              "assignedtasks",
              "completedtasks",
              "projects",
              "activeprojects",
              "(depreciated)"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "format": "date-time",
            "in": "query",
            "name": "lastLoginAfter",
            "type": "string"
          },
          {
            "description": "end date for task completion report",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page (not used when generating reports)",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number (not used when generating reports)",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "Include user job role in search",
            "in": "query",
            "name": "searchUserJobRole",
            "type": "boolean"
          },
          {
            "description": "Force to have the current/session user in the response",
            "in": "query",
            "name": "orderPrioritiseCurrentUser",
            "type": "boolean"
          },
          {
            "default": "false",
            "in": "query",
            "name": "onlySiteOwner",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "return people only from the owner company. This will replace any provided\ncompany ID.",
            "in": "query",
            "name": "onlyOwnerCompany",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "make the filter inclusive for user ids, teamIds, companyIds",
            "in": "query",
            "name": "inclusiveFilter",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include service accounts",
            "in": "query",
            "name": "includeServiceAccounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include placeholder users",
            "in": "query",
            "name": "includePlaceholders",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "exclude collaborators types, returning only account and contact.",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include clients",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects in the report",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "Returns users who are missing cost rates(OCA only)",
            "in": "query",
            "name": "filterByNoCostRate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude contact types, returning only account and collaborator.",
            "in": "query",
            "name": "excludeContacts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only include users with administrator status in the response",
            "in": "query",
            "name": "adminsOnly",
            "type": "boolean"
          },
          {
            "description": "filter users by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userProjectIds",
            "type": "array"
          },
          {
            "description": "team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include (not used when generating reports)",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[userIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[person]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[people]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "exclude people assigned to certain project id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectIds",
            "type": "array"
          },
          {
            "description": "exclude certain user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          },
          {
            "description": "filter by user emails",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "emails",
            "type": "array"
          },
          {
            "description": "company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/people.TaskCompletionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns task completions for given user",
        "tags": [
          "Person"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/utilization.csv": {
      "get": {
        "description": "Generates a utilization report in CSV format containing all people for the\nprovided filters. Only the people that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_utilization.csv",
        "parameters": [
          {
            "description": "determine the type of zoom filter used to display on the report",
            "enum": [
              "week",
              "month",
              "last3months",
              "quarterbyweek",
              "quarterbymonth"
            ],
            "in": "query",
            "name": "zoom",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "billableutilization",
              "nonbillableutilization"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "filter by user first or last name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "weekly",
              "monthly"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "companycount",
              "achieved",
              "target",
              "allocatedutilization",
              "totalworkingminutes",
              "availableutilization",
              "unavailableutilization"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "return response without summary and its legacy body structure",
            "in": "query",
            "name": "legacyResponse",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "determine if the query is for a custom date range",
            "in": "query",
            "name": "isCustomDateRange",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "adds report rows for individual entities",
            "in": "query",
            "name": "includeUtilizations",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds report summary to response",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include collaborators",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include client users",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "include calendar events",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "IncludeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by userIds",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by jobrole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "unavailableMinutes",
                "availableMinutes",
                "billableMinutes",
                "unbillableMinutes",
                "loggedMinutes"
              ],
              "type": "string"
            },
            "name": "fields[utilizations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate utilization report in CSV format",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/utilization.html": {
      "get": {
        "description": "Generates a utilization report in HTML format containing all people for the\nprovided filters. Only the people that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_utilization.html",
        "parameters": [
          {
            "description": "determine the type of zoom filter used to display on the report",
            "enum": [
              "week",
              "month",
              "last3months",
              "quarterbyweek",
              "quarterbymonth"
            ],
            "in": "query",
            "name": "zoom",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "billableutilization",
              "nonbillableutilization"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "filter by user first or last name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "weekly",
              "monthly"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "companycount",
              "achieved",
              "target",
              "allocatedutilization",
              "totalworkingminutes",
              "availableutilization",
              "unavailableutilization"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "return response without summary and its legacy body structure",
            "in": "query",
            "name": "legacyResponse",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "determine if the query is for a custom date range",
            "in": "query",
            "name": "isCustomDateRange",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "adds report rows for individual entities",
            "in": "query",
            "name": "includeUtilizations",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds report summary to response",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include collaborators",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include client users",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "include calendar events",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "IncludeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by userIds",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by jobrole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "unavailableMinutes",
                "availableMinutes",
                "billableMinutes",
                "unbillableMinutes",
                "loggedMinutes"
              ],
              "type": "string"
            },
            "name": "fields[utilizations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate utilization report in HTML format",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/utilization.pdf": {
      "get": {
        "description": "Generates a utilization report in PDF format containing all people for the\nprovided filters. Only the people that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_utilization.pdf",
        "parameters": [
          {
            "description": "determine the type of zoom filter used to display on the report",
            "enum": [
              "week",
              "month",
              "last3months",
              "quarterbyweek",
              "quarterbymonth"
            ],
            "in": "query",
            "name": "zoom",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "billableutilization",
              "nonbillableutilization"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "filter by user first or last name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "weekly",
              "monthly"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "companycount",
              "achieved",
              "target",
              "allocatedutilization",
              "totalworkingminutes",
              "availableutilization",
              "unavailableutilization"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "return response without summary and its legacy body structure",
            "in": "query",
            "name": "legacyResponse",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "determine if the query is for a custom date range",
            "in": "query",
            "name": "isCustomDateRange",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "adds report rows for individual entities",
            "in": "query",
            "name": "includeUtilizations",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds report summary to response",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include collaborators",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include client users",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "include calendar events",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "IncludeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by userIds",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by jobrole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "unavailableMinutes",
                "availableMinutes",
                "billableMinutes",
                "unbillableMinutes",
                "loggedMinutes"
              ],
              "type": "string"
            },
            "name": "fields[utilizations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate utilization report in PDF format",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/utilization.xlsx": {
      "get": {
        "description": "Generates a utilization report in XLSX format containing all people for the\nprovided filters. Only the people that the logged-in user can access will\nbe returned.",
        "operationId": "GET_projects_api_v3_reporting_precanned_utilization.xlsx",
        "parameters": [
          {
            "description": "determine the type of zoom filter used to display on the report",
            "enum": [
              "week",
              "month",
              "last3months",
              "quarterbyweek",
              "quarterbymonth"
            ],
            "in": "query",
            "name": "zoom",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "billableutilization",
              "nonbillableutilization"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "filter by user first or last name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "weekly",
              "monthly"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort by",
            "enum": [
              "name",
              "percentutilization",
              "percentestimatedutilization",
              "availableminutes",
              "unavailableminutes",
              "loggedminutes",
              "billableminutes",
              "unbillableminutes",
              "companycount",
              "achieved",
              "target",
              "allocatedutilization",
              "totalworkingminutes",
              "availableutilization",
              "unavailableutilization"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "group by",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "return response without summary and its legacy body structure",
            "in": "query",
            "name": "legacyResponse",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "determine if the query is for a custom date range",
            "in": "query",
            "name": "isCustomDateRange",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "adds report rows for individual entities",
            "in": "query",
            "name": "includeUtilizations",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds report summary to response",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include collaborators",
            "in": "query",
            "name": "includeCollaborators",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include client users",
            "in": "query",
            "name": "includeClients",
            "type": "boolean"
          },
          {
            "description": "include calendar events",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "IncludeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by userIds",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by jobrole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "unavailableMinutes",
                "availableMinutes",
                "billableMinutes",
                "unbillableMinutes",
                "loggedMinutes"
              ],
              "type": "string"
            },
            "name": "fields[utilizations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate utilization report in XLSX format",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/risks.json": {
      "get": {
        "description": "Return all risks for the provided filters. Only filters that the logged-in user\nhas access will be returned.",
        "operationId": "GET_projects_api_v3_risks.json",
        "parameters": [
          {
            "description": "filter by risks updated after specified date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by risks updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "sort order (deprecated, use orderMode)",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityTo",
            "type": "integer"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityFrom",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactTo",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactFrom",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact schedule",
            "in": "query",
            "name": "impactSchedule",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact performance",
            "in": "query",
            "name": "impactPerformance",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact cost",
            "in": "query",
            "name": "impactCost",
            "type": "boolean"
          },
          {
            "description": "filter by risk statuses",
            "in": "query",
            "items": {
              "enum": [
                "new",
                "pending",
                "closed"
              ],
              "type": "string"
            },
            "name": "statuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "source",
                "probability",
                "probabilityValue",
                "impact",
                "impactValue",
                "impactCost",
                "impactSchedule",
                "impactPerformance",
                "createdOn",
                "createdByUserId",
                "lastChangedOn",
                "lastChangedByUserId",
                "result",
                "mitigationPlan",
                "stats",
                "projectId",
                "deleted",
                "canEdit"
              ],
              "type": "string"
            },
            "name": "fields[risks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/risk.RisksResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all risks",
        "tags": [
          "Risks"
        ]
      }
    },
    "/projects/api/v3/risks/{riskId}.json": {
      "delete": {
        "description": "Delete a risk.",
        "operationId": "DELETE_projects_api_v3_risks_{riskId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "riskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing risk.",
        "tags": [
          "Risks"
        ],
        "x-private": true
      },
      "get": {
        "description": "This returns all details about an individual risk.",
        "operationId": "GET_projects_api_v3_risks_{riskId}.json",
        "parameters": [
          {
            "description": "filter by risks updated after specified date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by risks updated after specified date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "sort order (deprecated, use orderMode)",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "sortOrder",
            "type": "string"
          },
          {
            "description": "sort by (deprecated, use orderBy)",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "sort",
            "type": "string"
          },
          {
            "description": "search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "datecreated",
              "source",
              "probability",
              "impact",
              "result",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "riskId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityTo",
            "type": "integer"
          },
          {
            "description": "filter by probability",
            "in": "query",
            "name": "probabilityFrom",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactTo",
            "type": "integer"
          },
          {
            "description": "filter by impact",
            "in": "query",
            "name": "impactFrom",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact schedule",
            "in": "query",
            "name": "impactSchedule",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact performance",
            "in": "query",
            "name": "impactPerformance",
            "type": "boolean"
          },
          {
            "description": "filter by risks that impact cost",
            "in": "query",
            "name": "impactCost",
            "type": "boolean"
          },
          {
            "description": "filter by risk statuses",
            "in": "query",
            "items": {
              "enum": [
                "new",
                "pending",
                "closed"
              ],
              "type": "string"
            },
            "name": "statuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by specific ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "source",
                "probability",
                "probabilityValue",
                "impact",
                "impactValue",
                "impactCost",
                "impactSchedule",
                "impactPerformance",
                "createdOn",
                "createdByUserId",
                "lastChangedOn",
                "lastChangedByUserId",
                "result",
                "mitigationPlan",
                "stats",
                "projectId",
                "deleted",
                "canEdit"
              ],
              "type": "string"
            },
            "name": "fields[risks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/risk.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a risk by id.",
        "tags": [
          "Risks"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing risk.",
        "operationId": "PATCH_projects_api_v3_risks_{riskId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "risk.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/risk.Request"
            }
          },
          {
            "in": "path",
            "name": "riskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/risk.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing risk.",
        "tags": [
          "Risks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/skills.json": {
      "get": {
        "description": "This returns all skills along installation. You can\nlimit output by provided filters. Default data pagination\nis 50 items per page.\nWhen include users all users that are assigned to that skill\nwill be side loaded",
        "operationId": "GET_projects_api_v3_skills.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by task id",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "filter by updater user id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "updatedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[skill]",
            "type": "array"
          },
          {
            "description": "filter by creator user id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter skills by users assigned to it",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/skill.SkillsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all skills.",
        "tags": [
          "Skills"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new skill global to the entire installation.",
        "operationId": "POST_projects_api_v3_skills.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new skill.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Bulk delete a number of skills.",
        "operationId": "POST_projects_api_v3_skills_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.BulkDeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.BulkDeleteRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many skills at once.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/people/{id}.json": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Assign or remove skills to a single user.",
        "operationId": "PUT_projects_api_v3_skills_people_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Assign a skill.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/{id}.json": {
      "delete": {
        "description": "Removes a skill. It's still possible to recover the skill.\nMarks all related skill assignments as deleted.",
        "operationId": "DELETE_projects_api_v3_skills_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing skill.",
        "tags": [
          "Skills"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Update an existing skill.",
        "operationId": "PATCH_projects_api_v3_skills_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing skill.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/{id}/people.json": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "description": "Deletes a skill from one or more users.",
        "operationId": "DELETE_projects_api_v3_skills_{id}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "serviceinterfaces.SkillUserRequestPayload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceinterfaces.SkillUserRequestPayload"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Remove a skill from a user.",
        "tags": [
          "Skills"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Assign a skill to one or more users.",
        "operationId": "POST_projects_api_v3_skills_{id}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Assign a skill.",
        "tags": [
          "Skills"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Assign or remove a skill to one or more users.",
        "operationId": "PUT_projects_api_v3_skills_{id}_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Assign a skill.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/{id}/people/{userId}.json": {
      "delete": {
        "description": "Deletes a skill from a single user.",
        "operationId": "DELETE_projects_api_v3_skills_{id}_people_{userId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Remove a skill from a user.",
        "tags": [
          "Skills"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Assign a skill to a single user.",
        "operationId": "POST_projects_api_v3_skills_{id}_people_{userId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "skill.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/skill.Request"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Assign a skill to a single user.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/skills/{skillId}.json": {
      "get": {
        "description": "This returns all details about an individual skill.\nWhen include users all users that are assigned to that skill\nwill be side loaded",
        "operationId": "GET_projects_api_v3_skills_{skillId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "skillId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/skill.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific skill.",
        "tags": [
          "Skills"
        ]
      }
    },
    "/projects/api/v3/statuses.json": {
      "get": {
        "description": "All of the latest status posts are returned for all users in the parent\ncompany.",
        "operationId": "GET_projects_api_v3_statuses.json",
        "parameters": [
          {
            "description": "return only statuses updated after a specific date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by the user name or status message",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by team",
            "in": "query",
            "name": "teamId",
            "type": "integer"
          },
          {
            "default": "100",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "show also users without status",
            "in": "query",
            "name": "showEveryone",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "showDeleted statuses",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "also include statuses from subteams",
            "in": "query",
            "name": "includeSubteams",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "statuses",
                "users",
                "userevents"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "emoji",
                "text",
                "dateTime",
                "ipAddress",
                "dateLastUpdated"
              ],
              "type": "string"
            },
            "name": "fields[statuses]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/status.TimelineResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all statuses",
        "tags": [
          "PeopleStatus"
        ]
      }
    },
    "/projects/api/v3/statuses/timeline.json": {
      "get": {
        "description": "Return a timeline list of people statuses that the logged-in user can access.",
        "operationId": "GET_projects_api_v3_statuses_timeline.json",
        "parameters": [
          {
            "description": "filter by the user name or status message",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by team",
            "in": "query",
            "name": "teamId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "showDeleted statuses",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "also include statuses from subteams",
            "in": "query",
            "name": "includeSubteams",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "userevents"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "emoji",
                "text",
                "dateTime",
                "ipAddress",
                "dateLastUpdated"
              ],
              "type": "string"
            },
            "name": "fields[statuses]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/status.TimelineResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the people statuses timeline.",
        "tags": [
          "PeopleStatus"
        ]
      }
    },
    "/projects/api/v3/summary.json": {
      "get": {
        "description": "Retrieves the summary from the entire installation, returning counters about\ntasks, milestones, columns, events, risks, timers, projects healths.\n\n\nOn this endpoint you can filter by project custom fields. The syntax for the\nquery parameter is the following:\n\n    projectCustomField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    projectCustomField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_summary.json",
        "parameters": [
          {
            "description": "used to limit the since counters to a specific period",
            "enum": [
              "now",
              "timeRange"
            ],
            "in": "query",
            "name": "until",
            "type": "string"
          },
          {
            "description": "filter by start datetime",
            "format": "date-time",
            "in": "query",
            "name": "timeRangeStart",
            "type": "string"
          },
          {
            "description": "filter by end datetime",
            "format": "date-time",
            "in": "query",
            "name": "timeRangeEnd",
            "type": "string"
          },
          {
            "description": "filter by time range. It will be ignored if timeRangeStart and timeRangeEnd\nare provided.",
            "enum": [
              "yesterday",
              "today",
              "thisweek",
              "lastweek",
              "thismonth",
              "lastmonth",
              "last3months",
              "last6months"
            ],
            "in": "query",
            "name": "timeRange",
            "type": "string"
          },
          {
            "description": "project status (deprecated, use projectStatuses)",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "7",
            "description": "number of days remaining to event's start",
            "in": "query",
            "name": "eventsDaysAhead",
            "type": "integer"
          },
          {
            "description": "enforce today is considered as start date for today's tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "filter by my unread messages only",
            "in": "query",
            "name": "unreadMessagesMineOnly",
            "type": "boolean"
          },
          {
            "description": "filter by my unread comments only",
            "in": "query",
            "name": "unreadCommentsMineOnly",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "filter only project events",
            "in": "query",
            "name": "onlyProjectEvents",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched (deprecated, use matchAllProjectTags)",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include teams related to the taskAssigneeUserIds",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "count only events that the users are attending",
            "in": "query",
            "name": "eventsAttendingOnly",
            "type": "boolean"
          },
          {
            "description": "the since section will only use taskAssigneeUserIds if this flag is true\n(keeps backward compatibility)",
            "in": "query",
            "name": "applyTaskAssigneeUsersToSince",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "when enabled unread counters will respect the time range period.",
            "in": "query",
            "name": "applySinceOnUnread",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by user ids who time logged",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "timeLoggedByUserIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with tasks assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskAssigneeUserIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "project healths (deprecated, use projectHealths)\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealth",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with milestones assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "milestoneAssigneeUserIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids (deprecated, use projectTagIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "filterTagIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "comments",
                "messages"
              ],
              "type": "string"
            },
            "name": "fields[unread]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "estimates",
                "totals"
              ],
              "type": "string"
            },
            "name": "fields[time]",
            "type": "array"
          },
          {
            "description": "sparse fields",
            "in": "query",
            "items": {
              "enum": [
                "nodate",
                "today",
                "late",
                "started",
                "complete",
                "upcoming",
                "active"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "count",
                "data"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "tasksComplete",
                "tasksCreated",
                "events",
                "dateTime"
              ],
              "type": "string"
            },
            "name": "fields[since]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "total",
                "open",
                "pending",
                "closed"
              ],
              "type": "string"
            },
            "name": "fields[risks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "today",
                "late",
                "complete",
                "upcoming",
                "active"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "description": "0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "string"
            },
            "name": "fields[health]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "today",
                "upcoming"
              ],
              "type": "string"
            },
            "name": "fields[events]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "count",
                "data"
              ],
              "type": "string"
            },
            "name": "fields[columns]",
            "type": "array"
          },
          {
            "description": "filter by company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by user ids with tasks or milestones assigned",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/summary.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get installation summary dashboard",
        "tags": [
          "Summary"
        ]
      }
    },
    "/projects/api/v3/tags.json": {
      "get": {
        "description": "Return all tags that the logged-in user can access.",
        "operationId": "GET_projects_api_v3_tags.json",
        "parameters": [
          {
            "description": "search for tags updated after the provided date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "count",
              "project",
              "color",
              "datelastupdated",
              "projectdatelastused"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by item type",
            "enum": [
              "all",
              "project",
              "task",
              "tasklist",
              "milestone",
              "message",
              "comment",
              "timelog",
              "file",
              "user",
              "company",
              "invoice",
              "risk",
              "notebook",
              "link",
              "event",
              "notebookversion",
              "fileversion"
            ],
            "in": "query",
            "name": "itemType",
            "type": "string"
          },
          {
            "default": "all",
            "description": "mode used when filtering the tags",
            "enum": [
              "all",
              "recent"
            ],
            "in": "query",
            "name": "filter",
            "type": "string"
          },
          {
            "default": "500",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "include in the response the number of items that use the tag",
            "in": "query",
            "name": "withCounters",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "do not include in the response special tags",
            "in": "query",
            "name": "skipSpecial",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "search term will be placed as a prefix to match the tag names",
            "in": "query",
            "name": "searchRightOnly",
            "type": "boolean"
          },
          {
            "description": "skip from the result tags with the defined ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipIds",
            "type": "array"
          },
          {
            "description": "filter by projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tag.TagsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all tags",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new tag. If there's already a tag with the same name in the\ninstallation, it will be returned in the response with the status code 200\n(OK).",
        "operationId": "POST_projects_api_v3_tags.json",
        "parameters": [
          {
            "in": "body",
            "name": "tag.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tag.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tag.Response"
            }
          },
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/tag.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a single tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/projects/api/v3/tags/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Removes many tags at once.",
        "operationId": "POST_projects_api_v3_tags_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "tag.BulkDeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tag.BulkDeleteRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many tags at once",
        "tags": [
          "Tags"
        ]
      }
    },
    "/projects/api/v3/tags/{tagId}.json": {
      "delete": {
        "description": "Removes a tag. If there's no tag with the given ID the status code 409\n(CONFLICT) will be returned.",
        "operationId": "DELETE_projects_api_v3_tags_{tagId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "tagId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Deletes a tag",
        "tags": [
          "Tags"
        ]
      },
      "get": {
        "description": "Return a specific tag.",
        "operationId": "GET_projects_api_v3_tags_{tagId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "tagId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tag.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get details of an individual tag",
        "tags": [
          "Tags"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates a existing tag. If there's already a tag with the same changed name\nin the installation, it will be returned the status code 409 (CONFLICT).",
        "operationId": "PATCH_projects_api_v3_tags_{tagId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "tag.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tag.Request"
            }
          },
          {
            "in": "path",
            "name": "tagId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tag.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a single tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/projects/api/v3/tasklists.json": {
      "get": {
        "operationId": "GET_projects_api_v3_tasklists.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "status",
              "createdat",
              "updatedat",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "nil",
            "description": "filter the task list budget by its parent project budget id, if none\nis provided it weill default to the current active budget.",
            "in": "query",
            "name": "projectBudgetId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort default list first",
            "in": "query",
            "name": "sortDefaultListFirst",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active lists first, sortDefaultListFirst take precedence over this",
            "in": "query",
            "name": "sortActiveListsFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include completed items",
            "in": "query",
            "name": "showCompleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "this means use the tasklist report endpoint, which has totally different query params",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include empty lists",
            "in": "query",
            "name": "getEmptyLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only completed items",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateDates",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "defaultTasks",
                "defaultTasks.users",
                "defaultTasks.teams",
                "defaultTasks.reminders",
                "defaultTasks.customfields",
                "defaultTasks.companies",
                "createdBy",
                "updatedBy",
                "companies",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "milestones",
                "defaultCustomfields",
                "defaultCustomfieldTasks",
                "defaultColumns",
                "defaultWorkflowStages",
                "defaultWorkflows",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "default": "nil",
            "description": "Exclude certain tasklists from the response",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklist.TasklistsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all tasklists",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/tasklists/templates.json": {
      "get": {
        "operationId": "GET_projects_api_v3_tasklists_templates.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "status",
              "createdat",
              "updatedat",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "nil",
            "description": "filter the task list budget by its parent project budget id, if none\nis provided it weill default to the current active budget.",
            "in": "query",
            "name": "projectBudgetId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort default list first",
            "in": "query",
            "name": "sortDefaultListFirst",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active lists first, sortDefaultListFirst take precedence over this",
            "in": "query",
            "name": "sortActiveListsFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include completed items",
            "in": "query",
            "name": "showCompleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "this means use the tasklist report endpoint, which has totally different query params",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include empty lists",
            "in": "query",
            "name": "getEmptyLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only completed items",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateDates",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "defaultTasks",
                "defaultTasks.users",
                "defaultTasks.teams",
                "defaultTasks.reminders",
                "defaultTasks.customfields",
                "defaultTasks.companies",
                "createdBy",
                "updatedBy",
                "companies",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "milestones",
                "defaultCustomfields",
                "defaultCustomfieldTasks",
                "defaultColumns",
                "defaultWorkflowStages",
                "defaultWorkflows",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "default": "nil",
            "description": "Exclude certain tasklists from the response",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklist.TasklistsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all tasklist templates",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/tasklists/{tasklistId}.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_tasklists_{tasklistId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing tasklist.",
        "tags": [
          "Tasklists"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_tasklists_{tasklistId}.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by project type",
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "displayorder",
            "description": "order by",
            "enum": [
              "displayorder",
              "name",
              "status",
              "createdat",
              "updatedat",
              "project"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "nil",
            "description": "filter the task list budget by its parent project budget id, if none\nis provided it weill default to the current active budget.",
            "in": "query",
            "name": "projectBudgetId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort default list first",
            "in": "query",
            "name": "sortDefaultListFirst",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active lists first, sortDefaultListFirst take precedence over this",
            "in": "query",
            "name": "sortActiveListsFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include private items",
            "in": "query",
            "name": "showPrivate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include completed items",
            "in": "query",
            "name": "showCompleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "this means use the tasklist report endpoint, which has totally different query params",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include empty lists",
            "in": "query",
            "name": "getEmptyLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only completed items",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateDates",
            "type": "boolean"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "defaultTasks",
                "defaultTasks.users",
                "defaultTasks.teams",
                "defaultTasks.reminders",
                "defaultTasks.customfields",
                "defaultTasks.companies",
                "createdBy",
                "updatedBy",
                "companies",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "milestones",
                "defaultCustomfields",
                "defaultCustomfieldTasks",
                "defaultColumns",
                "defaultWorkflowStages",
                "defaultWorkflows",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "default": "nil",
            "description": "Exclude certain tasklists from the response",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/tasklist.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get specific tasklist",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/tasklists/{tasklistId}/tasks.json": {
      "get": {
        "description": "Return multiple tasks according to the provided filter.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_tasklists_{tasklistId}_tasks.json",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.tasksResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific tasklist's tasks.",
        "tags": [
          "Tasks"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new task in the provided task list.",
        "operationId": "POST_projects_api_v3_tasklists_{tasklistId}_tasks.json",
        "parameters": [
          {
            "in": "body",
            "name": "task.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/task.Request"
            }
          },
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/task.responseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Creates a task.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/tasklists/{tasklistId}/time/total.json": {
      "get": {
        "operationId": "GET_projects_api_v3_tasklists_{tasklistId}_time_total.json",
        "parameters": [
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog totals for a specific task.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/tasks.json": {
      "get": {
        "description": "Return multiple tasks according to the provided filter.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_tasks.json",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.tasksResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all tasks.",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/tasks/metrics/complete.json": {
      "get": {
        "description": "Returns the total number of completed tasks. Only the tasks that the\nlogged-in user can access will be counted.",
        "operationId": "GET_projects_api_v3_tasks_metrics_complete.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/complete.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Total count of completed tasks",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/tasks/metrics/late.json": {
      "get": {
        "description": "Returns the number of late tasks. Only the tasks that the logged-in user has\naccess to will be counted.",
        "operationId": "GET_projects_api_v3_tasks_metrics_late.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/late.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get total count of late tasks",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}.json": {
      "delete": {
        "description": "Delete a task and its subtasks.",
        "operationId": "DELETE_projects_api_v3_tasks_{taskId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing task.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      },
      "get": {
        "description": "Returns the information about a specific task.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_tasks_{taskId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.responseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific task.",
        "tags": [
          "Tasks"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing task.",
        "operationId": "PATCH_projects_api_v3_tasks_{taskId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "task.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/task.Request"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.responseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing task.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/tasks/{taskId}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_tasks_{taskId}_comments.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by comment content (like v1 filterText param)",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "filter by published after date",
            "format": "date",
            "in": "query",
            "name": "publishedStartDate",
            "type": "string"
          },
          {
            "description": "filter by published before date",
            "format": "date",
            "in": "query",
            "name": "publishedEndDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "data",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by commment status",
            "enum": [
              "all",
              "read",
              "unread"
            ],
            "in": "query",
            "name": "commentStatus",
            "type": "string"
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use strict html filtering fto content",
            "in": "query",
            "name": "strictHTML",
            "type": "boolean"
          },
          {
            "description": "get reactions count",
            "in": "query",
            "name": "getReactionsCount",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by users who got notified for the comments",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "notifiedUserIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "reactions",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/comment.CommentsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a list of comments for a task",
        "tags": [
          "TaskComments"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/customfields.json": {
      "get": {
        "description": "Return all custom field values from a specific task.",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_customfields.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by task id",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "description": "filter by custom field ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customFieldIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseTask"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Task custom field values.",
        "tags": [
          "CustomFields"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Add a task custom field value.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_customfields.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestTask",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestTask"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/value.responseTask"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Add task custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/customfields/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Remove many entries of task custom field values at once.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_customfields_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkDeleteRequestTask",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkDeleteRequestTask"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete many task custom fields values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/customfields/bulk/update.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit many entries of task custom field values at once.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_customfields_bulk_update.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.bulkUpdateRequestTask",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.bulkUpdateRequestTask"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.valuesResponseTask"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update many task custom field values at once.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json": {
      "delete": {
        "description": "Removes a task custom field value.",
        "operationId": "DELETE_projects_api_v3_tasks_{taskId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing task custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "get": {
        "description": "Return a specific custom field value from a task.",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseTask"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Task custom field value.",
        "tags": [
          "CustomFields"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit a task custom field value.",
        "operationId": "PATCH_projects_api_v3_tasks_{taskId}_customfields_{customFieldId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "value.requestTask",
            "required": true,
            "schema": {
              "$ref": "#/definitions/value.requestTask"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customFieldId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/value.responseTask"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing task custom field value.",
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/subtasks.json": {
      "get": {
        "description": "Return multiple subtasks according to the provided filter.\n\n\nOn this endpoint you can filter by custom fields. The syntax for the\nquery parameter is the following:\n\n    customField[id][op]=value\n\nWhere:\n  - [id] is the custom field ID\n  - [op] is the operator to apply when filtering, different operators are\n    allowed according to the custom field type\n  - [value] is the value to apply when filtering\n\nFor example, if I want to filter a dropdown custom field with ID 10 to only\nreturn entries that have the value \"Option1\" we would do the following:\n\n    customField[10][eq]=Option1\n\nThe allowed operators are:\n  - like\n  - not-like\n  - eq\n  - not\n  - lt\n  - gt\n  - any",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_subtasks.json",
        "parameters": [
          {
            "description": "filter by updated before date",
            "format": "date-time",
            "in": "query",
            "name": "updatedBefore",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by today",
            "format": "date-time",
            "in": "query",
            "name": "today",
            "type": "string"
          },
          {
            "description": "filter by a taskFilter",
            "enum": [
              "all",
              "anytime",
              "completed",
              "created",
              "overdue",
              "today",
              "yesterday",
              "started",
              "tomorrow",
              "thisweek",
              "within7",
              "within14",
              "within30",
              "within365",
              "nodate",
              "noduedate",
              "nostartdate",
              "newTaskDefaults",
              "hasDate"
            ],
            "in": "query",
            "name": "taskFilter",
            "type": "string"
          },
          {
            "description": "filter on start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "task",
            "description": "define the type of the report",
            "enum": [
              "plannedvsactual",
              "task",
              "tasktime"
            ],
            "in": "query",
            "name": "reportType",
            "type": "string"
          },
          {
            "default": "pdf",
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter results by project type. Leave empty to include all types (e.g. `&projectType=`)",
            "enum": [
              "normal",
              "tentative"
            ],
            "in": "query",
            "name": "projectType",
            "type": "string"
          },
          {
            "description": "filter by task priority",
            "in": "query",
            "name": "priority",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "duedate",
            "description": "order by",
            "enum": [
              "id",
              "startdate",
              "createdat",
              "priority",
              "project",
              "flattenedtasklist",
              "company",
              "manual",
              "active",
              "completedat",
              "duestartdate",
              "alldates",
              "tasklistname",
              "tasklistdisplayorder",
              "tasklistid",
              "duedate",
              "updatedat",
              "taskname",
              "createdby",
              "completedby",
              "assignedto",
              "taskstatus",
              "taskduedate",
              "customfield",
              "estimatedtime",
              "boardcolumn",
              "taskgroupid",
              "taskgroupname",
              "taskgroup",
              "displayorder",
              "projectmanual",
              "stagedisplayorder",
              "stage",
              "parenttask"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by projects that have not been completed before the given date",
            "format": "date",
            "in": "query",
            "name": "notCompletedBefore",
            "type": "string"
          },
          {
            "description": "filter on end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter before a due date",
            "format": "date",
            "in": "query",
            "name": "dueBefore",
            "type": "string"
          },
          {
            "description": "filter after a due date",
            "format": "date",
            "in": "query",
            "name": "dueAfter",
            "type": "string"
          },
          {
            "description": "filter on deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "description": "filter by created filter",
            "enum": [
              "anytime",
              "today",
              "yesterday",
              "custom"
            ],
            "in": "query",
            "name": "createdFilter",
            "type": "string"
          },
          {
            "description": "filter by created date code",
            "in": "query",
            "name": "createdDateCode",
            "type": "string"
          },
          {
            "description": "filter by created before date",
            "format": "date-time",
            "in": "query",
            "name": "createdBefore",
            "type": "string"
          },
          {
            "description": "filter by created after date",
            "format": "date-time",
            "in": "query",
            "name": "createdAfter",
            "type": "string"
          },
          {
            "description": "filter by completed before date",
            "format": "date-time",
            "in": "query",
            "name": "completedBefore",
            "type": "string"
          },
          {
            "description": "filter by completed after date",
            "format": "date-time",
            "in": "query",
            "name": "completedAfter",
            "type": "string"
          },
          {
            "description": "filter by updated user id",
            "in": "query",
            "name": "updatedByUserId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by parent task ids",
            "in": "query",
            "name": "parentTaskId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "order by custom field id when orderBy is equal to customfield",
            "in": "query",
            "name": "orderByCustomFieldId",
            "type": "integer"
          },
          {
            "description": "include task id",
            "in": "query",
            "name": "includeTaskId",
            "type": "integer"
          },
          {
            "description": "provide a user saved filter ID",
            "in": "query",
            "name": "filterId",
            "type": "integer"
          },
          {
            "description": "filter by completed user id",
            "in": "query",
            "name": "completedByUserId",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use daterange logic from table when getting the tasks",
            "in": "query",
            "name": "useTaskDateRange",
            "type": "boolean"
          },
          {
            "description": "use start dates for todays tasks",
            "in": "query",
            "name": "useStartDatesForTodaysTasks",
            "type": "boolean"
          },
          {
            "description": "use formula fields",
            "in": "query",
            "name": "useFormulaFields",
            "type": "boolean"
          },
          {
            "description": "filter on all projects",
            "in": "query",
            "name": "useAllProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "sort active tasks first",
            "in": "query",
            "name": "sortActiveFirst",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include tasks from completed lists",
            "in": "query",
            "name": "showCompletedLists",
            "type": "boolean"
          },
          {
            "description": "include job roles in the search term",
            "in": "query",
            "name": "searchJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies and teams in the search term",
            "in": "query",
            "name": "searchCompaniesTeams",
            "type": "boolean"
          },
          {
            "description": "include assignees in the search",
            "in": "query",
            "name": "searchAssignees",
            "type": "boolean"
          },
          {
            "description": "only untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only return tasks that are unplanned. Not assigned, no due date or\nmissing estimated time.",
            "in": "query",
            "name": "onlyUnplanned",
            "type": "boolean"
          },
          {
            "description": "only include tasks that are unassigned",
            "in": "query",
            "name": "onlyUnassignedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with unread comments",
            "in": "query",
            "name": "onlyTasksWithUnreadComments",
            "type": "boolean"
          },
          {
            "description": "filter by only tasks with tickets",
            "in": "query",
            "name": "onlyTasksWithTickets",
            "type": "boolean"
          },
          {
            "description": "only return tasks with estimated time",
            "in": "query",
            "name": "onlyTasksWithEstimatedTime",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a user assigned",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks from projects where the user is strictly a project admin.\nsite admins have visibility to all projects.",
            "in": "query",
            "name": "onlyAdminProjects",
            "type": "boolean"
          },
          {
            "description": "nest sub tasks",
            "in": "query",
            "name": "nestSubTasks",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "match all exclude tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include tasks latest update action",
            "in": "query",
            "name": "includeUpdate",
            "type": "boolean"
          },
          {
            "description": "include untagged tasks",
            "in": "query",
            "name": "includeUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by include tomorrow",
            "in": "query",
            "name": "includeTomorrow",
            "type": "boolean"
          },
          {
            "description": "filter by include today",
            "in": "query",
            "name": "includeToday",
            "type": "boolean"
          },
          {
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "include members of the given teams",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without due dates",
            "in": "query",
            "name": "includeTasksWithoutDueDates",
            "type": "boolean"
          },
          {
            "description": "include tasks from deleted lists",
            "in": "query",
            "name": "includeTasksFromDeletedLists",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include total count of tasks for given filter",
            "in": "query",
            "name": "includeTasksCount",
            "type": "boolean"
          },
          {
            "description": "include ids of active subtasks, dependencies, predecessors",
            "in": "query",
            "name": "includeRelatedTasks",
            "type": "boolean"
          },
          {
            "description": "include private items",
            "in": "query",
            "name": "includePrivateItems",
            "type": "boolean"
          },
          {
            "description": "include overdue tasks",
            "in": "query",
            "name": "includeOverdueTasks",
            "type": "boolean"
          },
          {
            "description": "include original due date of a task",
            "in": "query",
            "name": "includeOriginalDueDate",
            "type": "boolean"
          },
          {
            "description": "include members of the given job roles",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include ids of completed predecessors. It must be provided with\nincludeRelatedTasks flag or with the predecessors sideload.",
            "in": "query",
            "name": "includeCompletedPredecessors",
            "type": "boolean"
          },
          {
            "description": "include members of the given companies",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each task",
            "in": "query",
            "name": "includeCommentStats",
            "type": "boolean"
          },
          {
            "description": "filter by include blocked",
            "in": "query",
            "name": "includeBlocked",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include number of unread and read comments for each file attachment",
            "in": "query",
            "name": "includeAttachmentCommentStats",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible user ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "include all comments",
            "in": "query",
            "name": "includeAllComments",
            "type": "boolean"
          },
          {
            "description": "Populate accumulatedLoggedMinutes / accumulatedBillableLoggedMinutes /\naccumulatedBilledloggedMinutes on the timeTotals sideload. Equivalent to\nadding \"accumulatedTimeTotals\" to the include list. Costs an extra\nrecursive query; leave unset when the subtask rollup is not needed.",
            "in": "query",
            "name": "includeAccumulatedTimeTotals",
            "type": "boolean"
          },
          {
            "description": "group by tasklist",
            "in": "query",
            "name": "groupByTasklist",
            "type": "boolean"
          },
          {
            "description": "group by taskgroup",
            "in": "query",
            "name": "groupByTaskgroup",
            "type": "boolean"
          },
          {
            "description": "get sub tasks",
            "in": "query",
            "name": "getSubTasks",
            "type": "boolean"
          },
          {
            "description": "get files",
            "in": "query",
            "name": "getFiles",
            "type": "boolean"
          },
          {
            "description": "set due date as milestone due date if due date is null and there's a related milestone",
            "in": "query",
            "name": "fallbackToMilestoneDueDate",
            "type": "boolean"
          },
          {
            "description": "For tasks created in a project template it's possible to assign a role instead of people, companies or teams.\nThis role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name\nand return it inside a special field.",
            "in": "query",
            "name": "extractTemplateRoleName",
            "type": "boolean"
          },
          {
            "description": "exclude assignee not on project teams",
            "in": "query",
            "name": "excludeAssigneeNotOnProjectTeams",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only completed tasks",
            "in": "query",
            "name": "completedOnly",
            "type": "boolean"
          },
          {
            "description": "check if task has reminders",
            "in": "query",
            "name": "checkForReminders",
            "type": "boolean"
          },
          {
            "description": "calculate task list start and due dates from earliest and latest tasks",
            "in": "query",
            "name": "calculateTasklistDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "when filtering by assigned or unassagned tasks, include assignees that\nare not in the project.",
            "in": "query",
            "name": "allowAssigneesOutsideProject",
            "type": "boolean"
          },
          {
            "description": "customise the report by selecting columns to be displayed for tasks report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tasksSelectedColumns",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by taskgroup ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskgroupIds",
            "type": "array"
          },
          {
            "description": "filter by task included set",
            "in": "query",
            "items": {
              "enum": [
                "overdue",
                "nodate",
                "nostartdate",
                "noduedate",
                "nostartwithfutureduedate",
                "taskListNames",
                "projectNames"
              ],
              "type": "string"
            },
            "name": "taskIncludedSet",
            "type": "array"
          },
          {
            "description": "filter by tag values",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "tags",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by list of task status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "late",
                "all"
              ],
              "type": "string"
            },
            "name": "status",
            "type": "array"
          },
          {
            "description": "Multi level sort for tasks, first value is the primary sort\n\nfor descending order prepend \"-\"\" to the sort value e.g. sort=-project",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "sort",
            "type": "array"
          },
          {
            "description": "skip crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skipCRMDealIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns to be displayed for planned vs actual.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by projects that have features enabled",
            "in": "query",
            "items": {
              "enum": [
                "list",
                "board",
                "gantt",
                "table",
                "dashboard",
                "milestones",
                "messages",
                "files",
                "time",
                "notebooks",
                "risks",
                "links",
                "billing",
                "comments",
                "people",
                "settings"
              ],
              "type": "string"
            },
            "name": "projectFeaturesEnabled",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by portfolio board ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "portfolioBoardIds",
            "type": "array"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include (permissions deprecated, use projects.permissions)",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tasklists",
                "parentTasks",
                "companies",
                "teams",
                "users",
                "milestones",
                "comments",
                "comments.users",
                "tags",
                "cards",
                "cards.columns",
                "timeTotals",
                "accumulatedTimeTotals",
                "taskSequences",
                "commentFollowers",
                "changeFollowers",
                "completeFollowers",
                "lockdowns",
                "lockdowns.users",
                "lockdowns.companies",
                "lockdowns.teams",
                "lockdowns.users.companies",
                "lockdowns.companies.users",
                "lockdowns.teams.users",
                "attachments",
                "attachments.users",
                "subtaskStats",
                "timers",
                "predecessors",
                "permissions",
                "jobRoles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "description": "filter by followed by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "followedByUserIds",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "displayOrder",
                "projectId",
                "status"
              ],
              "type": "string"
            },
            "name": "fields[taskgroups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userID",
                "updatedAt",
                "itemType",
                "itemID",
                "grantAccessTo"
              ],
              "type": "string"
            },
            "name": "fields[lockdowns]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "late",
                "today",
                "tomorrow",
                "later-this-week",
                "next-week",
                "later",
                "no-due-date"
              ],
              "type": "string"
            },
            "name": "fields[groups]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "isPrivate",
                "latestFileVersionNo",
                "versionId",
                "status",
                "description",
                "lockdownId",
                "tagIds",
                "changeFollowers",
                "commentFollowers",
                "originalName",
                "displayName",
                "isLocked",
                "lockedByUserId",
                "lockedDate",
                "size",
                "uploadedDate",
                "uploadedByUserID",
                "updatedAt",
                "deletedAt",
                "deletedBy",
                "fileSource",
                "projectId",
                "numLikes",
                "reactions",
                "versions",
                "downloadURL",
                "previewURL",
                "thumbURL",
                "relatedItems",
                "commentsCount",
                "commentsCountRead",
                "categoryId"
              ],
              "type": "string"
            },
            "name": "fields[files]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "projectId",
                "entity",
                "name",
                "description",
                "type",
                "options",
                "visibilities",
                "isPrivate",
                "required",
                "createdAt",
                "createdByUserId",
                "updatedAt",
                "updatedByUserId",
                "deleted",
                "deletedAt",
                "deletedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[customfields]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "customfieldId",
                "value",
                "createdAt",
                "createdBy"
              ],
              "type": "string"
            },
            "name": "fields[customfieldTasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[comments]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "the ids of the expanded tasks",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedIds",
            "type": "array"
          },
          {
            "description": "filter by excluded tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by crm deal ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "crmDealIds",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee jobRole ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by custom fields",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "CustomFields",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.tasksResponseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all subtasks for a specific task.",
        "tags": [
          "Tasks"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new subtask under the provided parent task.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_subtasks.json",
        "parameters": [
          {
            "in": "body",
            "name": "task.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/task.Request"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/task.responseV205"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Creates a subtask.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/tasks/{taskId}/time.json": {
      "get": {
        "description": "Return logged time entries for a specific task. Only the time entries that\nthe logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_time.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time entries for a specific task",
        "tags": [
          "TimeTracking"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a time entry linked to the desired task.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_time.json",
        "parameters": [
          {
            "in": "body",
            "name": "timelog.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timelog.Request"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/timelog.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a time entry linked to a specific task.",
        "tags": [
          "TimeTracking"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/tasks/{taskId}/time/total.json": {
      "get": {
        "operationId": "GET_projects_api_v3_tasks_{taskId}_time_total.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog totals for a specific task.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/timeblocks.json": {
      "get": {
        "description": "Get all events.",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_timeblocks.json",
        "parameters": [
          {
            "description": "load recent events after a specific date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter dates where the start date is after the given date.",
            "format": "date-time",
            "in": "query",
            "name": "startedAfterDate",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "startTime",
            "description": "order by",
            "enum": [
              "startTime",
              "updated"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by iCalUID.",
            "in": "query",
            "name": "iCalUID",
            "type": "string"
          },
          {
            "description": "filter dates where the end date is before the given date.",
            "format": "date-time",
            "in": "query",
            "name": "endedBeforeDate",
            "type": "string"
          },
          {
            "description": "returns events on this date.",
            "format": "date",
            "in": "query",
            "name": "date",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "the maximum number of attendees to include in the response. If there are\nmore than the specified number of attendees, only the participant is\nreturned.",
            "in": "query",
            "name": "maxAttendees",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "includes deleted instances (cancelled)",
            "in": "query",
            "name": "showDeletedInstances",
            "type": "boolean"
          },
          {
            "description": "include deleted single events",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include timelogs that are attached to events",
            "in": "query",
            "name": "includeTimelogs",
            "type": "boolean"
          },
          {
            "description": "include ongoing events",
            "in": "query",
            "name": "includeOngoingEvents",
            "type": "boolean"
          },
          {
            "description": "includes modified instances (updated)",
            "in": "query",
            "name": "includeModifiedInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' master records",
            "in": "query",
            "name": "includeMasterInstances",
            "type": "boolean"
          },
          {
            "description": "returns series' regular instances",
            "in": "query",
            "name": "includeInstances",
            "type": "boolean"
          },
          {
            "description": "exclude transparent events",
            "in": "query",
            "name": "excludeTransparentEvents",
            "type": "boolean"
          },
          {
            "description": "exclude events with single attendee",
            "in": "query",
            "name": "excludeSingleAttendeeEvents",
            "type": "boolean"
          },
          {
            "description": "allow non-owning users to access calendar.",
            "in": "query",
            "name": "allowNonOwned",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.jobroles",
                "jobroles",
                "masterInstances",
                "timeblocks.projects",
                "timeblocks.projects.permissions",
                "timeblocks.tasks",
                "timeblocks.tasks.tasklists",
                "timeblocks.projects.companies",
                "timeblocks.timelogs",
                "timeblocks.timelogs.tags",
                "timelogs",
                "timelogs.tags",
                "timelogs.tasks",
                "timelogs.tasks.tasklists",
                "timelogs.projects",
                "timelogs.projects.prermissions",
                "timelogs.projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "iCalUID",
                "status",
                "htmlLink",
                "createdAt",
                "updatedAt",
                "summary",
                "description",
                "color",
                "createdBy",
                "organizer",
                "start",
                "end",
                "allDay",
                "attendees",
                "location",
                "transparency",
                "visibility",
                "recurrence",
                "reminders",
                "videoCallLink"
              ],
              "type": "string"
            },
            "name": "fields[calendarsEvents]",
            "type": "array"
          },
          {
            "description": "filter by creator user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "createdByUserIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/event.CalendarEventsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all calendar events.",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/workflows/{workflowId}.json": {
      "patch": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PATCH_projects_api_v3_tasks_{taskId}_workflows_{workflowId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "stage.MoveTaskRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/stage.MoveTaskRequest"
            }
          },
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/stage.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edits the position of a task in a stage",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/time.json": {
      "get": {
        "description": "Return all logged time entries for all projects. Only the time entries that\nthe logged-in user can access will be returned.",
        "operationId": "GET_projects_api_v3_time.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sort order",
            "enum": [
              "company",
              "date",
              "dateupdated",
              "project",
              "task",
              "tasklist",
              "user",
              "description",
              "billed",
              "billable",
              "timespent"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "filter by deleted after date",
            "format": "date-time",
            "in": "query",
            "name": "deletedAfter",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "description": "filter by ticket id (deprecated, use ticketIds)",
            "in": "query",
            "name": "ticketId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id (deprecated, use projectIds)",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "filter by invoice id",
            "in": "query",
            "name": "invoiceId",
            "type": "integer"
          },
          {
            "description": "filter by budget id",
            "in": "query",
            "name": "budgetId",
            "type": "integer"
          },
          {
            "description": "filter by allocation id",
            "in": "query",
            "name": "allocationId",
            "type": "integer"
          },
          {
            "description": "use fallback method, where timelogs on deleted tasks and tasklist\nwill fall back to the parent project.",
            "in": "query",
            "name": "useFallbackMethod",
            "type": "boolean"
          },
          {
            "description": "filter by timelogs that are directly logged against projects and not its child tasks",
            "in": "query",
            "name": "unattachedTimelogs",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all task tags",
            "in": "query",
            "name": "matchAllTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include totals",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include permissions",
            "in": "query",
            "name": "includePermissions",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include descendants",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only deleted tasks",
            "in": "query",
            "name": "deletedOnly",
            "type": "boolean"
          },
          {
            "description": "check timesheets' locking",
            "in": "query",
            "name": "checkLocking",
            "type": "boolean"
          },
          {
            "description": "filter by ticket ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ticketIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "filter by project company ids (deprecated, use projectCompanyIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectsFromCompanyId",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "projects.categories",
                "projects.permissions",
                "projects.integrations",
                "tags",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "tasks.users",
                "users",
                "project.billing",
                "project.billing.currencies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count"
              ],
              "type": "string"
            },
            "name": "fields[tags]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "count",
                "parent",
                "parentId"
              ],
              "type": "string"
            },
            "name": "fields[projectcategories]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all time entries",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/time/approvals/{approvalId}/reopen.json": {
      "post": {
        "description": "Path Parameters:\n  - approvalId: The ID of the time approval to reopen",
        "operationId": "POST_projects_api_v3_time_approvals_{approvalId}_reopen.json",
        "parameters": [
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timeapproval.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Reopen a time approval back to in review",
        "tags": [
          "TimeApprovals"
        ]
      }
    },
    "/projects/api/v3/time/approvals/{approvalId}/requestreopen.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Path Parameters:\n  - approvalId: The ID of the time approval to request reopening for",
        "operationId": "POST_projects_api_v3_time_approvals_{approvalId}_requestreopen.json",
        "parameters": [
          {
            "in": "body",
            "name": "timeapproval.RequestReopenRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timeapproval.RequestReopenRequest"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Request to reopen a time approval.",
        "tags": [
          "TimeApprovals"
        ]
      }
    },
    "/projects/api/v3/time/total.json": {
      "get": {
        "operationId": "GET_projects_api_v3_time_total.json",
        "parameters": [
          {
            "description": "filter by updated after",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by a starting date",
            "format": "date-time",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "enum": [
              "active",
              "current",
              "late",
              "upcoming",
              "completed",
              "deleted"
            ],
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date",
            "format": "date-time",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "non-billable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by user id (deprecated, use assignedToUserIds)",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by tasklist id",
            "in": "query",
            "name": "tasklistId",
            "type": "integer"
          },
          {
            "description": "filter by task id (deprecated, use taskIds)",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "description": "filter by desk ticket id",
            "in": "query",
            "name": "deskTicketId",
            "type": "integer"
          },
          {
            "description": "used to return the cost rate and total",
            "in": "query",
            "name": "returnCostInfo",
            "type": "boolean"
          },
          {
            "description": "used to return the billable rate and total",
            "in": "query",
            "name": "returnBillableInfo",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "get subtask totals",
            "in": "query",
            "name": "includeDescendants",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "filter by user ids (deprecated, use assignedToUserIds)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by task statuses",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "taskStatuses",
            "type": "array"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by timelog tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by sub-task status, includeDescendants must be set to true\nfor this to have any effect",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "completed",
                "incomplete"
              ],
              "type": "string"
            },
            "name": "subTaskStatuses",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "active",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project healths\n\n0: not set\n1: bad\n2: ok\n3: good",
            "in": "query",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3"
              ],
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids\nset to 0 to filter by projects without a category",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToUserIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assigned company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedToCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by assigned team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assignedTeamIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.TotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog totals.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/time/validate.json": {
      "get": {
        "description": "Validates if a timelog can be created for a specific date by checking\nif there are any approved time approvals for that week.",
        "operationId": "GET_projects_api_v3_time_validate.json",
        "parameters": [
          {
            "description": "required - the date to validate",
            "format": "date",
            "in": "query",
            "name": "date",
            "type": "string"
          },
          {
            "description": "the users to check, if not set the logged in user will be used",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.ValidationResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Validate if a timelog can be created",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/time/{timelogId}.json": {
      "delete": {
        "description": "Delete a timelog.",
        "operationId": "DELETE_projects_api_v3_time_{timelogId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "timelogId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing timelog.",
        "tags": [
          "TimeTracking"
        ],
        "x-private": true
      },
      "get": {
        "operationId": "GET_projects_api_v3_time_{timelogId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "timelogId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific time entry",
        "tags": [
          "TimeTracking"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing time entry.",
        "operationId": "PATCH_projects_api_v3_time_{timelogId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "timelog.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/timelog.Request"
            }
          },
          {
            "in": "path",
            "name": "timelogId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timelog.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing time entry.",
        "tags": [
          "TimeTracking"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/timers.json": {
      "get": {
        "description": "Brings back all current running timers. Will return a set of existing intervals for each timer.\nIf the timer has never been stopped then this interval will only have a from property set and\nthe you will need to calculate the current duration of the timer.",
        "operationId": "GET_projects_api_v3_timers.json",
        "parameters": [
          {
            "description": "filter by updated after date (deprecated, use updatedAfter)",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfterDate",
            "type": "string"
          },
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "description": "filter by task id",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "enforce running timers only",
            "in": "query",
            "name": "runningTimersOnly",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.TimersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all running timers",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/timers/{timerId}.json": {
      "get": {
        "description": "Will get a timer with with a specific ID.",
        "operationId": "GET_projects_api_v3_timers_{timerId}.json",
        "parameters": [
          {
            "description": "filter by user id",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "timerId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by task id",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "projects.companies",
                "tasks",
                "tasks.parentTasks",
                "tasks.tasklists",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "userId",
                "taskId",
                "projectId",
                "description",
                "running",
                "billable",
                "deleted",
                "dateCreated",
                "dateDeleted",
                "duration",
                "lastStartedAt",
                "serverTime",
                "intervals"
              ],
              "type": "string"
            },
            "name": "fields[timers]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timer.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific timer",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/timesheets.json": {
      "get": {
        "description": "Return a list of timesheet rows for the given user depending on param options.",
        "operationId": "GET_projects_api_v3_timesheets.json",
        "parameters": [
          {
            "in": "query",
            "name": "weekDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by task status",
            "enum": [
              "all",
              "completed",
              "incomplete"
            ],
            "in": "query",
            "name": "taskStatus",
            "type": "string"
          },
          {
            "description": "filter by a starting date, will default to the start of users work week.",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by tasks/projects/company names",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "pdf",
              "xlsx",
              "csv",
              "html"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dueDate",
            "description": "order by",
            "enum": [
              "project",
              "company",
              "duedate",
              "timelogrecency"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "monthDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date, will default to the end of users work week.",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "nonbillable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by user id, will default to session user",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include users unavailable times field.",
            "in": "query",
            "name": "includeUnavailableTimes",
            "type": "boolean"
          },
          {
            "description": "include tentative projects.",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "includes a breakdown of the totals",
            "in": "query",
            "name": "includeBreakdown",
            "type": "boolean"
          },
          {
            "description": "filter by tasks and projects that have time logged",
            "in": "query",
            "name": "hasTimeLogged",
            "type": "boolean"
          },
          {
            "description": "also include tasks that are assigned to teams",
            "in": "query",
            "name": "assignedToTeams",
            "type": "boolean"
          },
          {
            "description": "also include tasks that are assigned to me",
            "in": "query",
            "name": "assignedToMe",
            "type": "boolean"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "active",
                "inactive",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "timelogs",
                "tasks",
                "tasks.tasklist",
                "tasks.users",
                "tasks.parentTasks",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "timesheetsCustomRows",
                "unavailableTimes",
                "calendarEventTypes",
                "timeApprovals"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "default": "empty",
            "description": "exclude by time frames",
            "in": "query",
            "items": {
              "enum": [
                "due-this-week",
                "starting-this-week",
                "no-due-date",
                "no-start-date",
                "created-this-week",
                "completed-this-week"
              ],
              "type": "string"
            },
            "name": "excludeTimeframes",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timesheet.MyTimesheetsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get list of timesheet rows",
        "tags": [
          "Timesheets"
        ]
      }
    },
    "/projects/api/v3/timesheets/totals.json": {
      "get": {
        "description": "Get the daily totals counts for all the user's timesheets.",
        "operationId": "GET_projects_api_v3_timesheets_totals.json",
        "parameters": [
          {
            "in": "query",
            "name": "weekDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by task status",
            "enum": [
              "all",
              "completed",
              "incomplete"
            ],
            "in": "query",
            "name": "taskStatus",
            "type": "string"
          },
          {
            "description": "filter by a starting date, will default to the start of users work week.",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by tasks/projects/company names",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "pdf",
              "xlsx",
              "csv",
              "html"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dueDate",
            "description": "order by",
            "enum": [
              "project",
              "company",
              "duedate",
              "timelogrecency"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "monthDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by invoiced type",
            "enum": [
              "all",
              "invoiced",
              "noninvoiced"
            ],
            "in": "query",
            "name": "invoicedType",
            "type": "string"
          },
          {
            "description": "filter by an ending date, will default to the end of users work week.",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "all",
            "description": "filter by billable type",
            "enum": [
              "all",
              "billable",
              "nonbillable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by user id, will default to session user",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export.",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "include users unavailable times field.",
            "in": "query",
            "name": "includeUnavailableTimes",
            "type": "boolean"
          },
          {
            "description": "include tentative projects.",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "description": "includes a breakdown of the totals",
            "in": "query",
            "name": "includeBreakdown",
            "type": "boolean"
          },
          {
            "description": "filter by tasks and projects that have time logged",
            "in": "query",
            "name": "hasTimeLogged",
            "type": "boolean"
          },
          {
            "description": "also include tasks that are assigned to teams",
            "in": "query",
            "name": "assignedToTeams",
            "type": "boolean"
          },
          {
            "description": "also include tasks that are assigned to me",
            "in": "query",
            "name": "assignedToMe",
            "type": "boolean"
          },
          {
            "description": "filter by task ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "default": "all",
            "description": "filter by project statuses",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "active",
                "inactive",
                "current",
                "late",
                "upcoming",
                "completed",
                "deleted"
              ],
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "timelogs",
                "tasks",
                "tasks.tasklist",
                "tasks.users",
                "tasks.parentTasks",
                "projects",
                "projects.permissions",
                "projects.integrations",
                "timesheetsCustomRows",
                "unavailableTimes",
                "calendarEventTypes",
                "timeApprovals"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "default": "empty",
            "description": "exclude by time frames",
            "in": "query",
            "items": {
              "enum": [
                "due-this-week",
                "starting-this-week",
                "no-due-date",
                "no-start-date",
                "created-this-week",
                "completed-this-week"
              ],
              "type": "string"
            },
            "name": "excludeTimeframes",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/timesheet.MyTimesheetsTotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the totals for the all the user's timesheets.",
        "tags": [
          "Timesheets"
        ]
      }
    },
    "/projects/api/v3/workflows.json": {
      "get": {
        "operationId": "GET_projects_api_v3_workflows.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by workflow status",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only workflows that are in use",
            "in": "query",
            "name": "onlyUtilisedWorkflows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude project specific workflows",
            "in": "query",
            "name": "onlyGlobalWorkflows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by the default workflow",
            "in": "query",
            "name": "onlyDefaultWorkflow",
            "type": "boolean"
          },
          {
            "description": "enforce all stage names must be matched",
            "in": "query",
            "name": "matchAllStageNames",
            "type": "boolean"
          },
          {
            "description": "include installation wide total counts",
            "in": "query",
            "name": "includeTotalCount",
            "type": "boolean"
          },
          {
            "description": "IncludeBulkApplyStatus allows you to check bulk apply global workflow status.",
            "in": "query",
            "name": "includeBulkApplyStatus",
            "type": "boolean"
          },
          {
            "description": "include archived workflows",
            "in": "query",
            "name": "includeArchived",
            "type": "boolean"
          },
          {
            "description": "filter by workflow ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowIds",
            "type": "array"
          },
          {
            "description": "filter workflows by the extact stage names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "stageNames",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "stages",
                "users",
                "teams",
                "companies",
                "projects.permissions",
                "projects.integrations",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/workflow.WorkflowsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all workflows.",
        "tags": [
          "Workflows"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new workflow.",
        "operationId": "POST_projects_api_v3_workflows.json",
        "parameters": [
          {
            "in": "body",
            "name": "workflow.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/workflow.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/workflow.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new workflow.",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/workflows/{id}.json": {
      "delete": {
        "description": "Deletes an existing workflow.",
        "operationId": "DELETE_projects_api_v3_workflows_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing workflow.",
        "tags": [
          "Workflows"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_workflows_{id}.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "filter by workflow status",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include deleted items",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include only workflows that are in use",
            "in": "query",
            "name": "onlyUtilisedWorkflows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "exclude project specific workflows",
            "in": "query",
            "name": "onlyGlobalWorkflows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by the default workflow",
            "in": "query",
            "name": "onlyDefaultWorkflow",
            "type": "boolean"
          },
          {
            "description": "enforce all stage names must be matched",
            "in": "query",
            "name": "matchAllStageNames",
            "type": "boolean"
          },
          {
            "description": "include installation wide total counts",
            "in": "query",
            "name": "includeTotalCount",
            "type": "boolean"
          },
          {
            "description": "IncludeBulkApplyStatus allows you to check bulk apply global workflow status.",
            "in": "query",
            "name": "includeBulkApplyStatus",
            "type": "boolean"
          },
          {
            "description": "include archived workflows",
            "in": "query",
            "name": "includeArchived",
            "type": "boolean"
          },
          {
            "description": "filter by workflow ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "workflowIds",
            "type": "array"
          },
          {
            "description": "filter workflows by the extact stage names",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "stageNames",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "stages",
                "users",
                "teams",
                "companies",
                "projects.permissions",
                "projects.integrations",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "userId",
                "projectId",
                "canAccessBox",
                "canAccessDropbox",
                "canAccessGoogleDocs",
                "canAccessOneDrive",
                "canAccessOneDriveBusiness",
                "canAccessSharePoint"
              ],
              "type": "string"
            },
            "name": "fields[projectIntegrations]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "viewMessagesAndFiles",
                "viewTasksAndMilestones",
                "viewTime",
                "viewNotebooks",
                "viewRiskRegister",
                "viewEstimatedTime",
                "viewInvoices",
                "addTasks",
                "addRisks",
                "manageCustomFields",
                "addExpenses",
                "editAllTasks",
                "addMilestones",
                "addTaskLists",
                "addMessages",
                "addFiles",
                "addTime",
                "addNotebooks",
                "viewLinks",
                "addLinks",
                "canViewForms",
                "addForms",
                "viewAllTimeLogs",
                "setPrivacy",
                "projectAdministrator",
                "viewProjectUpdate",
                "addProjectUpdate",
                "canViewProjectMembers",
                "canViewProjectBudget",
                "canManageProjectBudget",
                "canViewRates",
                "canManageRates",
                "canViewSchedule",
                "canManageSchedule",
                "receiveEmailNotifications",
                "isObserving",
                "isArchived",
                "active",
                "canAccess",
                "inOwnerCompany",
                "canManagePeople",
                "canViewProjectTemplates",
                "canManageProjectTemplates"
              ],
              "type": "string"
            },
            "name": "fields[ProjectPermissions]",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/workflow.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific workflow.",
        "tags": [
          "Workflows"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Partial update a workflow.",
        "operationId": "PATCH_projects_api_v3_workflows_{id}.json",
        "parameters": [
          {
            "in": "body",
            "name": "workflow.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/workflow.Request"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/workflow.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing workflow.",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/workflows/{workflowId}/stages.json": {
      "get": {
        "description": "Retrieve all stages for a workflow.",
        "operationId": "GET_projects_api_v3_workflows_{workflowId}_stages.json",
        "parameters": [
          {
            "description": "filter by updated after date",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "id",
            "description": "order by",
            "enum": [
              "id",
              "name",
              "displayorder"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response\nwill fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by workflow ids",
            "in": "query",
            "name": "workflowId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include deleted stages in the result",
            "in": "query",
            "name": "showDeleted",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "workflows"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by stage ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ids",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "statusId"
              ],
              "type": "string"
            },
            "name": "fields[workflows]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "stage"
              ],
              "type": "string"
            },
            "name": "fields[stages]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/stage.StagesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all stages.",
        "tags": [
          "Workflows"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new stage for a workflow with the given id.",
        "operationId": "POST_projects_api_v3_workflows_{workflowId}_stages.json",
        "parameters": [
          {
            "in": "body",
            "name": "stage.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/stage.Request"
            }
          },
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/stage.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new stage for a workflow.",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/workflows/{workflowId}/stages/{stageId}.json": {
      "delete": {
        "description": "Delete a workflow stage with the given id and migrate tasks to another stage.",
        "operationId": "DELETE_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "stageId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "204": {
            "description": "204 No Content (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Delete an existing stage.",
        "tags": [
          "Workflows"
        ]
      },
      "get": {
        "description": "Returns a stage for a workflow by id.",
        "operationId": "GET_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "stageId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/stage.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific stage.",
        "tags": [
          "Workflows"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates a stage by id with the given workflow id.",
        "operationId": "PATCH_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "stage.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/stage.Request"
            }
          },
          {
            "in": "path",
            "name": "workflowId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "stageId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/stage.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing stage.",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/projects/api/v3/workload.json": {
      "get": {
        "description": "Return user's workload across projects.",
        "operationId": "GET_projects_api_v3_workload.json",
        "parameters": [
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by user name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "day",
            "description": "group by period for aggregation",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "filter by end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "cursor used for pagination. When using this pagination mode the page and\npageSize will be ignored, using limit to control the number of items. The\nsorting will strictly be by user ID. If any other filter is modified\nduring the cursor iteration the response will fallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "number of items to show when providing the cursor.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "consider task's logged time when calculating the capacity. The time\nalready logged will be subtracted from the estimated time before\ncomputing the capactiy.",
            "in": "query",
            "name": "useLoggedTime",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "omit empty date entries. This is useful to minimize the response size,\nhelping the parsing time. It requires that the client considers day gaps as\nno data.",
            "in": "query",
            "name": "omitEmptyDateEntries",
            "type": "boolean"
          },
          {
            "description": "match all skills",
            "in": "query",
            "name": "matchAllSkills",
            "type": "boolean"
          },
          {
            "description": "match all project tags",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "description": "include completed tasks when calculating the capacity and includes returning completed tasks.",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "description": "include synced calendar events in daily rollup calculations",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by teams",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "taskTagIds",
            "type": "array"
          },
          {
            "description": "filter by tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by skill ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skillIds",
            "type": "array"
          },
          {
            "description": "project types for overview",
            "in": "query",
            "items": {
              "enum": [
                "normal",
                "tentative"
              ],
              "type": "string"
            },
            "name": "projectTypes",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "filter by projects",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "filter by project company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.workingHours",
                "users.workingHours.workingHoursEntry",
                "tasks",
                "tasks.tasklists",
                "tasks.tasklists.milestones",
                "tasks.tasklists.projects",
                "tasks.taskCapacities",
                "users.milestones",
                "calendarEvents",
                "calendarEvents.calendarEventTypes",
                "unavailableTimes",
                "unavailableTimes.calendarEventTypes",
                "tasks.taskSequences",
                "holidays",
                "tasks.timelogs",
                "users.companies",
                "users.milestones.tags",
                "users.skills",
                "users.jobroles"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "name",
                "description",
                "dateCreated",
                "dateUpdated",
                "entryIds"
              ],
              "type": "string"
            },
            "name": "fields[workingHours]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "workingHourId",
                "weekday",
                "startTime",
                "endTime",
                "taskHours",
                "timezone"
              ],
              "type": "string"
            },
            "name": "fields[workingHourEntries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "startDate",
                "endDate",
                "durationMinutes",
                "type",
                "attendingUsers",
                "ownedBy",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "deleted",
                "deletedAt",
                "deletedBy"
              ],
              "type": "string"
            },
            "name": "fields[unavailableTimes]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "installationId",
                "frequency",
                "selectedWeekDays",
                "endDate",
                "monthlyRepeatType",
                "duration",
                "rrule"
              ],
              "type": "string"
            },
            "name": "fields[taskSequences]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "taskId",
                "userId",
                "date",
                "minutes"
              ],
              "type": "string"
            },
            "name": "fields[taskCapacities]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[skill]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "type",
                "status",
                "company",
                "companyId",
                "categoryId",
                "startPage",
                "logoIcon",
                "logoColor",
                "updatedAt",
                "isStarred",
                "allowNotifyAnyone",
                "notifyTaskAssignee",
                "isBillable",
                "timelogRequiresTask"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name"
              ],
              "type": "string"
            },
            "name": "fields[jobroles]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "title",
                "startDate",
                "endDate",
                "typeId",
                "privacyType",
                "allDay",
                "location",
                "description",
                "showAsBusy",
                "attendeesCanEdit",
                "projectUsersCanEdit",
                "monthlyRepeatType",
                "dateLastUpdated",
                "createdDateTime",
                "deleted",
                "dateDeleted",
                "additionalProperties",
                "currentUserAssociationType",
                "sequenceId",
                "projectId",
                "ownerUserId",
                "deletedByUserId",
                "createdByUserId",
                "updatedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[calendarEvents]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "color",
                "unavailable"
              ],
              "type": "string"
            },
            "name": "fields[calendarEventTypes]",
            "type": "array"
          },
          {
            "description": "filter by companies",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/workload.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Return the workload for users.",
        "tags": [
          "Workload"
        ]
      }
    },
    "/projects/api/v3/workload/planners.json": {
      "get": {
        "description": "Return the workload planner for each users of the installation.",
        "operationId": "GET_projects_api_v3_workload_planners.json",
        "parameters": [
          {
            "description": "define the start date of the planner",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by user name",
            "in": "query",
            "name": "searchUserName",
            "type": "string"
          },
          {
            "description": "filter by task name",
            "in": "query",
            "name": "searchTaskName",
            "type": "string"
          },
          {
            "description": "filter by project status",
            "in": "query",
            "name": "projectStatus",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "order by",
            "enum": [
              "name",
              "company"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "define the end date of the planner",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "default": "50",
            "description": "number of items in a page",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "default": "1",
            "description": "page number",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "description": "subtract logged time from task estimated time",
            "in": "query",
            "name": "subtractLoggedTimeFromEstimates",
            "type": "boolean"
          },
          {
            "description": "SkipCounts allows you to skip doing counts on a list API endpoint for\nperformance reasons.",
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include tasks that have the start and due dates outside the window range",
            "in": "query",
            "name": "prorating",
            "type": "boolean"
          },
          {
            "description": "filter ony untagged tasks",
            "in": "query",
            "name": "onlyUntaggedTasks",
            "type": "boolean"
          },
          {
            "description": "filter by starred projects only",
            "in": "query",
            "name": "onlyStarredProjects",
            "type": "boolean"
          },
          {
            "description": "enforce all tag ids must be matched",
            "in": "query",
            "name": "matchAllProjectTags",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include team users to the responsible party ids",
            "in": "query",
            "name": "includeTeamUserIds",
            "type": "boolean"
          },
          {
            "description": "include tasks without start and due date",
            "in": "query",
            "name": "includeTasksWithoutDates",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include job role users to the responsible party ids",
            "in": "query",
            "name": "includeJobRoleUserIds",
            "type": "boolean"
          },
          {
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include company users to the responsible party ids",
            "in": "query",
            "name": "includeCompanyUserIds",
            "type": "boolean"
          },
          {
            "description": "include calendar events on capacity calculation",
            "in": "query",
            "name": "includeCalendarEvents",
            "type": "boolean"
          },
          {
            "description": "include teams related to the responsible party ids",
            "in": "query",
            "name": "includeAssigneeTeams",
            "type": "boolean"
          },
          {
            "description": "include job roles related to the responsible party ids",
            "in": "query",
            "name": "includeAssigneeJobRoles",
            "type": "boolean"
          },
          {
            "description": "include companies related to the responsible party ids",
            "in": "query",
            "name": "includeAssigneeCompanies",
            "type": "boolean"
          },
          {
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "distribute the estimated time for a task between all the assignees",
            "in": "query",
            "name": "distribute",
            "type": "boolean"
          },
          {
            "description": "filter by member of team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "filter by responsible party ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "responsiblePartyIds",
            "type": "array"
          },
          {
            "description": "filter by project tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectTagIds",
            "type": "array"
          },
          {
            "description": "list of project status",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "projectStatuses",
            "type": "array"
          },
          {
            "description": "filter by project owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectOwnerIds",
            "type": "array"
          },
          {
            "description": "filter by project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectIds",
            "type": "array"
          },
          {
            "description": "list of project health",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectHealths",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCompanyIds",
            "type": "array"
          },
          {
            "description": "filter by project category ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectCategoryIds",
            "type": "array"
          },
          {
            "description": "filter by member of project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "memberOfProjectIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "users.workingHours",
                "users.workingHours.workingHoursEntry",
                "tasks",
                "tasks.timelogs",
                "tasklists",
                "milestones",
                "companies",
                "calendarEvents"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "objectType",
                "objectId",
                "name",
                "description",
                "dateCreated",
                "dateUpdated",
                "entryIds"
              ],
              "type": "string"
            },
            "name": "fields[workingHours]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "workingHourId",
                "weekday",
                "startTime",
                "endTime",
                "taskHours",
                "timezone"
              ],
              "type": "string"
            },
            "name": "fields[workingHourEntries]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "firstName",
                "lastName",
                "title",
                "email",
                "companyId",
                "company",
                "isAdmin",
                "isClientUser",
                "isServiceAccount",
                "type",
                "deleted",
                "avatarUrl",
                "lengthOfDay",
                "workingHoursId",
                "workingHour",
                "userRate",
                "userCost",
                "canAddProjects"
              ],
              "type": "string"
            },
            "name": "fields[users]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "dateCreated",
                "minutes",
                "description",
                "timeLogged",
                "billable",
                "deleted",
                "dateDeleted",
                "hasStartTime",
                "dateEdited",
                "deskTicketId",
                "userId",
                "taskId",
                "projectId",
                "loggedByUserId",
                "deletedByUserId",
                "editedByUserId",
                "taskIdPreMove",
                "projectBillingInvoiceId"
              ],
              "type": "string"
            },
            "name": "fields[timelogs]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate"
              ],
              "type": "string"
            },
            "name": "fields[tasks]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "projectId",
                "milestoneId"
              ],
              "type": "string"
            },
            "name": "fields[tasklists]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "description",
                "deadline",
                "completed",
                "projectId",
                "createdOn",
                "lastChangedOn",
                "creatorUserId",
                "reminder",
                "private",
                "lockdownId",
                "status",
                "completedOn",
                "completerId",
                "percentageComplete"
              ],
              "type": "string"
            },
            "name": "fields[milestones]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "title",
                "startDate",
                "endDate",
                "typeId",
                "privacyType",
                "allDay",
                "location",
                "description",
                "showAsBusy",
                "attendeesCanEdit",
                "projectUsersCanEdit",
                "monthlyRepeatType",
                "dateLastUpdated",
                "createdDateTime",
                "deleted",
                "dateDeleted",
                "additionalProperties",
                "currentUserAssociationType",
                "sequenceId",
                "projectId",
                "ownerUserId",
                "deletedByUserId",
                "createdByUserId",
                "updatedByUserId"
              ],
              "type": "string"
            },
            "name": "fields[calendarEvents]",
            "type": "array"
          },
          {
            "description": "filter by removing task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "type": "array"
          },
          {
            "description": "filter by user company id",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by assignee team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeTeamIds",
            "type": "array"
          },
          {
            "description": "filter by assignee job role ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeJobRoleIds",
            "type": "array"
          },
          {
            "description": "filter by assignee company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "assigneeCompanyIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/planner.WorkloadPlannersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Retrieve user workload planner",
        "tags": [
          "Workload"
        ]
      }
    }
  },
  "produces": [
    "application/json"
  ],
  "swagger": "2.0",
  "tags": [
    {
      "name": "Activity"
    },
    {
      "name": "TimeTracking"
    },
    {
      "name": "Budgets"
    },
    {
      "name": "CalendarEvents"
    },
    {
      "name": "Calendars"
    },
    {
      "name": "CalendarEvent"
    },
    {
      "name": "Comments"
    },
    {
      "name": "Companies"
    },
    {
      "name": "CustomFields"
    },
    {
      "name": "Quotes"
    },
    {
      "name": "Containers"
    },
    {
      "name": "CustomItems"
    },
    {
      "name": "Dashboards"
    },
    {
      "name": "ExchangeRate"
    },
    {
      "name": "Features"
    },
    {
      "name": "FileComments"
    },
    {
      "name": "FileVersionComments"
    },
    {
      "name": "Forms"
    },
    {
      "name": "FormsPublic"
    },
    {
      "name": "Importers"
    },
    {
      "name": "JobRoles"
    },
    {
      "name": "LinkItems"
    },
    {
      "name": "People"
    },
    {
      "name": "MessageReplies"
    },
    {
      "name": "Messages"
    },
    {
      "name": "Milestones"
    },
    {
      "name": "MilestoneComments"
    },
    {
      "name": "Notebooks"
    },
    {
      "name": "NotebookComments"
    },
    {
      "name": "Plans"
    },
    {
      "name": "Categories"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Risks"
    },
    {
      "name": "TaskLists"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "Workflows"
    },
    {
      "name": "Summary"
    },
    {
      "name": "ProjectUpdates"
    },
    {
      "name": "ProjectHealth"
    },
    {
      "name": "QuoteSettings"
    },
    {
      "name": "Estimation"
    },
    {
      "name": "Timelogs"
    },
    {
      "name": "BudgetReport"
    },
    {
      "name": "Person"
    },
    {
      "name": "Skills"
    },
    {
      "name": "PeopleStatus"
    },
    {
      "name": "Tags"
    },
    {
      "name": "Tasklists"
    },
    {
      "name": "TaskComments"
    },
    {
      "name": "TimeApprovals"
    },
    {
      "name": "Timesheets"
    },
    {
      "name": "Workload"
    }
  ]
}
