{
  "consumes": [
    "application/json"
  ],
  "definitions": {
    "active.ProjectMetricActive": {
      "description": "ProjectMetricActive contains all the information returned from a active.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "value"
      ],
      "title": "ProjectMetricActive",
      "type": "object"
    },
    "active.Response": {
      "description": "Response contains information about a specific active.",
      "properties": {
        "data": {
          "$ref": "#/definitions/active.ProjectMetricActive"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "activities",
        "meta",
        "included"
      ],
      "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"
        },
        "fromUserName": {
          "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"
        }
      },
      "required": [
        "id",
        "userId",
        "user",
        "projectId",
        "project",
        "companyId",
        "company",
        "activityType",
        "dateTime",
        "isPrivate",
        "itemId",
        "item",
        "latestActivityType",
        "type"
      ],
      "title": "Activity",
      "type": "object"
    },
    "analyticengine.AnalyticEngineResponse": {
      "description": "AnalyticEngineResponse is the top-level response for the financial report list endpoint.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/analyticengine.AnalyticEngineRowView"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/analyticengine.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "title": "AnalyticEngineResponse",
      "type": "object"
    },
    "analyticengine.AnalyticEngineRowView": {
      "description": "AnalyticEngineRowView represents a single row in the financial report.\nDimensions are keyed by field name (e.g. \"company_id\", \"project_id\").\nDimension names are not included — use the included sideloads to resolve names from IDs.\nSources holds per-source metric values (e.g. {\"timelog\": {\"revenue\": 100}}).",
      "properties": {
        "dateGroup": {
          "type": "string"
        },
        "dimensions": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object"
        },
        "relationships": {
          "additionalProperties": {
            "items": {
              "$ref": "#/definitions/view.Relationship"
            },
            "type": "array"
          },
          "description": "arrays; to-one = 1-elem",
          "type": "object"
        },
        "sources": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        }
      },
      "required": [
        "dimensions",
        "sources"
      ],
      "title": "AnalyticEngineRowView",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTotalsAveragesView": {
      "description": "AnalyticEngineTotalsAveragesView holds the average metric values for the totals endpoint.",
      "properties": {
        "averageBy": {
          "type": "string"
        },
        "sources": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        }
      },
      "required": [
        "averageBy",
        "sources"
      ],
      "title": "AnalyticEngineTotalsAveragesView",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTotalsResponse": {
      "description": "AnalyticEngineTotalsResponse is the response for the financial report totals endpoint.\nSources holds per-source column totals (grand sum of each source metric across all rows).\nCounts holds the distinct entity count per groupBy dimension (e.g. \"company\", \"project\", \"date\").",
      "properties": {
        "averages": {
          "$ref": "#/definitions/analyticengine.AnalyticEngineTotalsAveragesView"
        },
        "counts": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "sources": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        }
      },
      "required": [
        "sources",
        "meta"
      ],
      "title": "AnalyticEngineTotalsResponse",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTotalsView": {
      "description": "AnalyticEngineTotalsView holds the pooled totals per period for the trends/totals endpoint.",
      "properties": {
        "sources": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        }
      },
      "required": [
        "sources"
      ],
      "title": "AnalyticEngineTotalsView",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTrendsPeriodView": {
      "description": "AnalyticEngineTrendsPeriodView represents one time period in a trends response.\nPeriod is the ISO period-start date (e.g. \"2026-01-01\") and Granularity is the\nbucketing granularity (e.g. \"monthly\"). PeriodData contains the per-entity rows\nfor that period; DateGroup is omitted from each row because the period lives here.",
      "properties": {
        "granularity": {
          "description": "e.g. \"monthly\"",
          "type": "string"
        },
        "period": {
          "description": "ISO period start, e.g. \"2026-01-01\"",
          "type": "string"
        },
        "periodData": {
          "items": {
            "$ref": "#/definitions/analyticengine.AnalyticEngineRowView"
          },
          "type": "array"
        }
      },
      "required": [
        "period",
        "granularity",
        "periodData"
      ],
      "title": "AnalyticEngineTrendsPeriodView",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTrendsResponse": {
      "description": "AnalyticEngineTrendsResponse is the top-level response for the financial report trends endpoint.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/analyticengine.AnalyticEngineTrendsPeriodView"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/analyticengine.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "title": "AnalyticEngineTrendsResponse",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTrendsTotalsPeriodView": {
      "description": "AnalyticEngineTrendsTotalsPeriodView represents one period in a trends/totals response.",
      "properties": {
        "averages": {
          "$ref": "#/definitions/analyticengine.AnalyticEngineTotalsAveragesView"
        },
        "counts": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object"
        },
        "granularity": {
          "type": "string"
        },
        "period": {
          "type": "string"
        },
        "totals": {
          "$ref": "#/definitions/analyticengine.AnalyticEngineTotalsView"
        }
      },
      "required": [
        "period",
        "granularity"
      ],
      "title": "AnalyticEngineTrendsTotalsPeriodView",
      "type": "object"
    },
    "analyticengine.AnalyticEngineTrendsTotalsResponse": {
      "description": "AnalyticEngineTrendsTotalsResponse is the response for the trends/totals endpoint.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/analyticengine.AnalyticEngineTrendsTotalsPeriodView"
          },
          "type": "array"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "title": "AnalyticEngineTrendsTotalsResponse",
      "type": "object"
    },
    "analyticengine.Included": {
      "description": "Included holds the sideloaded entities referenced by the report rows.",
      "properties": {
        "allocations": {
          "type": "object"
        },
        "companies": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Company"
          },
          "type": "object"
        },
        "expenseCategories": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ExpenseCategory"
          },
          "type": "object"
        },
        "expenses": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectExpense"
          },
          "type": "object"
        },
        "files": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectFileV205"
          },
          "type": "object"
        },
        "jobRoles": {
          "additionalProperties": {
            "$ref": "#/definitions/view.JobRole"
          },
          "type": "object"
        },
        "milestones": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Milestone"
          },
          "type": "object"
        },
        "projectBudgets": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectBudget"
          },
          "type": "object"
        },
        "projects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectV205"
          },
          "type": "object"
        },
        "tasklistBudgets": {
          "additionalProperties": {
            "$ref": "#/definitions/view.TasklistBudget"
          },
          "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"
        },
        "timelogs": {
          "additionalProperties": {
            "$ref": "#/definitions/view.Timelog"
          },
          "type": "object"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "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"
        }
      },
      "required": [
        "user",
        "canEdit",
        "status",
        "reminders"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "title": "NullableCalendarAttendees",
      "type": "object"
    },
    "autoschedule.Bottleneck": {
      "description": "Bottleneck is one row in HighlightsResponse.Bottlenecks. Only rows flagged\nas a bottleneck are emitted, so IsBottleneck is always true.",
      "properties": {
        "activeUsersCount": {
          "type": "integer"
        },
        "bottleneckThresholdConfig": {
          "type": "number"
        },
        "date": {
          "description": "YYYY-MM-DD",
          "type": "string"
        },
        "inactiveUsersPercent": {
          "type": "number"
        },
        "isBottleneck": {
          "type": "boolean"
        },
        "projectId": {
          "type": "integer"
        },
        "totalAssignedUsers": {
          "type": "integer"
        }
      },
      "required": [
        "date",
        "projectId",
        "totalAssignedUsers",
        "activeUsersCount",
        "inactiveUsersPercent",
        "bottleneckThresholdConfig",
        "isBottleneck"
      ],
      "title": "Bottleneck",
      "type": "object"
    },
    "autoschedule.Config": {
      "description": "Config holds optional tuning parameters for a scheduling request. Every\nfield is an optional pointer: an absent field falls back to its server-side\ndefault, which is distinct from sending an explicit zero.",
      "properties": {
        "allowMultipleAssignees": {
          "type": "boolean"
        },
        "bottleneckThreshold": {
          "type": "number"
        },
        "defaultBillableRate": {
          "type": "integer"
        },
        "defaultCostRate": {
          "type": "integer"
        },
        "defaultTaskEstimatedTime": {
          "type": "integer"
        },
        "defaultUtilizationTarget": {
          "type": "number"
        },
        "optimizeFor": {
          "type": "string"
        }
      },
      "title": "Config",
      "type": "object"
    },
    "autoschedule.DailyProjectBreakdown": {
      "description": "DailyProjectBreakdown is one per-project entry within a DailySummary row.",
      "properties": {
        "projectId": {
          "type": "integer"
        },
        "scheduledEstimatedTime": {
          "type": "integer"
        },
        "usersInvolvedCount": {
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "usersInvolvedCount",
        "scheduledEstimatedTime"
      ],
      "title": "DailyProjectBreakdown",
      "type": "object"
    },
    "autoschedule.DailySummary": {
      "description": "DailySummary is one entry in HighlightsResponse.DailySummary.\nThe series is contiguous; idle days are zero-filled, not omitted.",
      "properties": {
        "date": {
          "description": "YYYY-MM-DD",
          "type": "string"
        },
        "projectsBreakdown": {
          "items": {
            "$ref": "#/definitions/autoschedule.DailyProjectBreakdown"
          },
          "type": "array"
        },
        "total": {
          "$ref": "#/definitions/autoschedule.DailyTotal"
        }
      },
      "required": [
        "date",
        "total",
        "projectsBreakdown"
      ],
      "title": "DailySummary",
      "type": "object"
    },
    "autoschedule.DailyTotal": {
      "description": "DailyTotal holds the combined totals for a single day across all projects.",
      "properties": {
        "scheduledEstimatedTime": {
          "type": "integer"
        },
        "usersInvolvedCount": {
          "type": "integer"
        }
      },
      "required": [
        "usersInvolvedCount",
        "scheduledEstimatedTime"
      ],
      "title": "DailyTotal",
      "type": "object"
    },
    "autoschedule.HealthResponse": {
      "description": "HealthResponse is the /planning/autoschedule/health 200 body. It reports\nwhether the scheduling service is reachable.",
      "properties": {
        "healthy": {
          "type": "boolean"
        },
        "target": {
          "type": "string"
        }
      },
      "required": [
        "healthy",
        "target"
      ],
      "title": "HealthResponse",
      "type": "object"
    },
    "autoschedule.HighlightsResponse": {
      "description": "HighlightsResponse is the /planning/autoschedule/highlights 200 body. All\nslice fields are non-nil so JSON serializes as [] not null.",
      "properties": {
        "bottlenecks": {
          "items": {
            "$ref": "#/definitions/autoschedule.Bottleneck"
          },
          "type": "array"
        },
        "dailySummary": {
          "items": {
            "$ref": "#/definitions/autoschedule.DailySummary"
          },
          "type": "array"
        },
        "included": {
          "$ref": "#/definitions/autoschedule.Included"
        },
        "jobRoleSummary": {
          "items": {
            "$ref": "#/definitions/autoschedule.JobRoleSummary"
          },
          "type": "array"
        },
        "projectSummary": {
          "items": {
            "$ref": "#/definitions/autoschedule.ProjectSummary"
          },
          "type": "array"
        },
        "userSummary": {
          "items": {
            "$ref": "#/definitions/autoschedule.UserSummary"
          },
          "type": "array"
        }
      },
      "required": [
        "userSummary",
        "jobRoleSummary",
        "projectSummary",
        "dailySummary",
        "bottlenecks"
      ],
      "title": "HighlightsResponse",
      "type": "object"
    },
    "autoschedule.Included": {
      "description": "Included carries the sideloaded users and jobroles for /highlights, always\npopulated (the endpoint has no include param).",
      "properties": {
        "jobRoles": {
          "additionalProperties": {
            "$ref": "#/definitions/view.JobRole"
          },
          "type": "object"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "autoschedule.JobRoleProjectBreakdown": {
      "description": "JobRoleProjectBreakdown is one project entry within JobRoleSummary.",
      "properties": {
        "assignedEstimatedTime": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "assignedEstimatedTime"
      ],
      "title": "JobRoleProjectBreakdown",
      "type": "object"
    },
    "autoschedule.JobRoleSummary": {
      "description": "JobRoleSummary is one entry in HighlightsResponse.JobRoleSummary. It has no\nallocated-time columns.",
      "properties": {
        "jobRole": {
          "$ref": "#/definitions/view.Relationship"
        },
        "jobRoleId": {
          "type": "integer"
        },
        "lockedEstimatedTimeOtherProjects": {
          "type": "integer"
        },
        "projectsBreakdown": {
          "items": {
            "$ref": "#/definitions/autoschedule.JobRoleProjectBreakdown"
          },
          "type": "array"
        },
        "totalSelectedProjectsEstimatedTime": {
          "type": "integer"
        },
        "totalUnavailableTime": {
          "type": "integer"
        },
        "totalWorkingTime": {
          "type": "integer"
        }
      },
      "required": [
        "jobRoleId",
        "totalSelectedProjectsEstimatedTime",
        "projectsBreakdown",
        "lockedEstimatedTimeOtherProjects",
        "totalWorkingTime",
        "totalUnavailableTime"
      ],
      "title": "JobRoleSummary",
      "type": "object"
    },
    "autoschedule.ProjectSummary": {
      "description": "ProjectSummary is one entry in HighlightsResponse.ProjectSummary.",
      "properties": {
        "completionDate": {
          "description": "null when completionOnTime==false",
          "type": "string"
        },
        "completionOnTime": {
          "type": "boolean"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "completionOnTime"
      ],
      "title": "ProjectSummary",
      "type": "object"
    },
    "autoschedule.Request": {
      "description": "Request is the shared request body accepted by all four\n/planning/autoschedule action routes (validate, preview, highlights and\npersist).",
      "properties": {
        "config": {
          "$ref": "#/definitions/autoschedule.Config"
        },
        "lockedTaskIds": {
          "description": "LockedTaskIDs lists tasks whose current assignees must be preserved: the\nscheduler may move their dates but will not reassign them.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "projectIds": {
          "description": "ProjectIDs is the set of projects to schedule. Exactly one project id is\nrequired; scheduling more than one project in a single request is not\ncurrently supported.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "projectIds"
      ],
      "title": "Request",
      "type": "object"
    },
    "autoschedule.RoleValidation": {
      "description": "RoleValidation reports tasks that no loaded user can complete.",
      "properties": {
        "isValid": {
          "type": "boolean"
        },
        "unassignableTasks": {
          "description": "[] not null",
          "items": {
            "$ref": "#/definitions/autoschedule.UnassignableTask"
          },
          "type": "array"
        }
      },
      "required": [
        "isValid",
        "unassignableTasks"
      ],
      "title": "RoleValidation",
      "type": "object"
    },
    "autoschedule.TaskCleanupError": {
      "description": "TaskCleanupError is one cleanup error. ErrorType is one of the two enum\nliterals shown below.",
      "properties": {
        "errorType": {
          "description": "LOCKED_TASK_REQUIREMENT_VIOLATION | MISSING_USER_DATA",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "required": [
        "taskId",
        "errorType",
        "message"
      ],
      "title": "TaskCleanupError",
      "type": "object"
    },
    "autoschedule.TaskCleanupValidation": {
      "description": "TaskCleanupValidation reports task-cleanup errors.",
      "properties": {
        "errors": {
          "description": "[] not null",
          "items": {
            "$ref": "#/definitions/autoschedule.TaskCleanupError"
          },
          "type": "array"
        },
        "isValid": {
          "type": "boolean"
        }
      },
      "required": [
        "isValid",
        "errors"
      ],
      "title": "TaskCleanupValidation",
      "type": "object"
    },
    "autoschedule.UnassignableTask": {
      "description": "UnassignableTask is one task whose required job roles no loaded user has.",
      "properties": {
        "message": {
          "type": "string"
        },
        "taskId": {
          "type": "integer"
        },
        "unassignableJobRoleIds": {
          "description": "[] not null",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "taskId",
        "unassignableJobRoleIds",
        "message"
      ],
      "title": "UnassignableTask",
      "type": "object"
    },
    "autoschedule.UserProjectBreakdown": {
      "description": "UserProjectBreakdown is one project entry within UserSummary.",
      "properties": {
        "assignedAllocatedTime": {
          "type": "integer"
        },
        "assignedEstimatedTime": {
          "type": "integer"
        },
        "projectId": {
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "assignedEstimatedTime",
        "assignedAllocatedTime"
      ],
      "title": "UserProjectBreakdown",
      "type": "object"
    },
    "autoschedule.UserSummary": {
      "description": "UserSummary is one entry in HighlightsResponse.UserSummary.",
      "properties": {
        "jobRole": {
          "$ref": "#/definitions/view.Relationship"
        },
        "jobRoleId": {
          "type": "integer"
        },
        "lockedEstimatedTimeOtherProjects": {
          "type": "integer"
        },
        "projectsBreakdown": {
          "items": {
            "$ref": "#/definitions/autoschedule.UserProjectBreakdown"
          },
          "type": "array"
        },
        "totalSelectedProjectsAllocatedTime": {
          "type": "integer"
        },
        "totalSelectedProjectsEstimatedTime": {
          "type": "integer"
        },
        "totalUnavailableTime": {
          "type": "integer"
        },
        "totalWorkingTime": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "required": [
        "userId",
        "totalSelectedProjectsEstimatedTime",
        "totalSelectedProjectsAllocatedTime",
        "projectsBreakdown",
        "lockedEstimatedTimeOtherProjects",
        "totalWorkingTime",
        "totalUnavailableTime"
      ],
      "title": "UserSummary",
      "type": "object"
    },
    "autoschedule.ValidateResponse": {
      "description": "ValidateResponse is the /planning/autoschedule/validate 200 body. It is\nalways returned with HTTP 200; validation issues are data, never errors.",
      "properties": {
        "isValid": {
          "type": "boolean"
        },
        "noUsersLoaded": {
          "description": "NoUsersLoaded is true when zero users were loaded. Forces IsValid=false;\nall validation buckets are empty.",
          "type": "boolean"
        },
        "projectsWithArtificialEndDate": {
          "description": "ProjectsWithArtificialEndDate lists projects with fakeEndDate=true. [] not null.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "roleValidation": {
          "$ref": "#/definitions/autoschedule.RoleValidation"
        },
        "taskCleanupValidation": {
          "$ref": "#/definitions/autoschedule.TaskCleanupValidation"
        },
        "usersWithoutJobRole": {
          "description": "UsersWithoutJobRole lists user IDs with no primary job role. [] not null.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "isValid",
        "noUsersLoaded",
        "roleValidation",
        "taskCleanupValidation",
        "usersWithoutJobRole",
        "projectsWithArtificialEndDate"
      ],
      "title": "ValidateResponse",
      "type": "object"
    },
    "billable.ProjectMetricBillable": {
      "description": "ProjectMetricBillable contains all the information returned from a billable.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "title": "ProjectMetricBillable",
      "type": "object"
    },
    "billable.ProjectMetricBillablesResponse": {
      "description": "ProjectMetricBillablesResponse contains information about a group of billables.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/billable.ProjectMetricBillable"
          },
          "type": "array"
        }
      },
      "required": [
        "data"
      ],
      "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.ProjectV205"
              },
              "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"
        }
      },
      "required": [
        "meta",
        "included"
      ],
      "title": "Response",
      "type": "object"
    },
    "calendar.AttendeeReminder": {
      "description": "AttendeeReminder is a reminder for a calendar attendee.",
      "properties": {
        "method": {
          "type": "string"
        },
        "minute": {
          "type": "integer"
        }
      },
      "required": [
        "method",
        "minute"
      ],
      "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"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "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"
        }
      },
      "required": [
        "calendars",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "calendar",
        "calendarOptions"
      ],
      "title": "Request",
      "type": "object"
    },
    "calendar.Response": {
      "description": "Response contains information about a specific calendar.",
      "properties": {
        "calendar": {
          "$ref": "#/definitions/view.Calendar"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "id",
        "email",
        "fullName"
      ],
      "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"
        }
      },
      "required": [
        "projectCategories",
        "projectCategoryTotals"
      ],
      "title": "CategoriesResponse",
      "type": "object"
    },
    "comment.Comment": {
      "description": "Comment contains all the information from a comment.",
      "properties": {
        "body": {
          "type": "string"
        },
        "contentType": {
          "type": "string"
        },
        "createdAt": {
          "description": "only for admins",
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "fileIds": {
          "$ref": "#/definitions/payload.NullableInt64Slice"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "private": {
          "type": "boolean"
        }
      },
      "required": [
        "fileIds"
      ],
      "title": "Comment",
      "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"
        }
      },
      "required": [
        "comments",
        "meta",
        "included"
      ],
      "title": "CommentsResponse",
      "type": "object"
    },
    "comment.File": {
      "description": "File stores information about a uploaded file.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id"
      ],
      "title": "File",
      "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"
        }
      },
      "required": [
        "id",
        "installationId",
        "htmlBody",
        "body",
        "postedByUserId",
        "projectId",
        "project",
        "objectId",
        "objectType",
        "deleted",
        "deletedByUserId",
        "lastEditedByUserId",
        "contentType",
        "reactionsCount",
        "peopleNotifiedCount",
        "fileIds",
        "files",
        "fileCount",
        "isPrivate",
        "lockdownID",
        "commentLink"
      ],
      "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"
        }
      },
      "required": [
        "isRead"
      ],
      "title": "Meta",
      "type": "object"
    },
    "comment.NotifiedResponse": {
      "description": "NotifiedResponse response for comment notified",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "people": {
          "items": {
            "$ref": "#/definitions/view.User"
          },
          "type": "array"
        }
      },
      "required": [
        "people",
        "meta",
        "included"
      ],
      "title": "NotifiedResponse",
      "type": "object"
    },
    "comment.PendingFile": {
      "description": "PendingFile stores information about a file uploaded on-the-fly.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "reference": {
          "type": "string"
        }
      },
      "required": [
        "reference"
      ],
      "title": "PendingFile",
      "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.Request": {
      "description": "Request contains information of a comment to be created or updated.",
      "properties": {
        "attachments": {
          "properties": {
            "files": {
              "items": {
                "$ref": "#/definitions/comment.File"
              },
              "type": "array"
            },
            "pendingFiles": {
              "items": {
                "$ref": "#/definitions/comment.PendingFile"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "comment": {
          "$ref": "#/definitions/comment.Comment"
        },
        "commentOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "notify": {
              "$ref": "#/definitions/payload.Notify"
            },
            "notifyCurrentUser": {
              "type": "boolean"
            },
            "parseMentions": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "comment",
        "commentOptions",
        "attachments"
      ],
      "title": "Request",
      "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"
        }
      },
      "required": [
        "comments",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "clientRateByRoleId"
      ],
      "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"
        }
      },
      "required": [
        "clientRateByRoleId",
        "included"
      ],
      "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": {
            "clientPortals": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ClientPortal"
              },
              "type": "object"
            },
            "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"
        }
      },
      "required": [
        "companies",
        "meta",
        "included"
      ],
      "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"
        },
        "removeLogo": {
          "type": "boolean"
        },
        "state": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "website": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      },
      "required": [
        "clientManagedBy",
        "customFields"
      ],
      "title": "Company",
      "type": "object"
    },
    "company.CustomFields": {
      "description": "CustomFields is the custom fields type.",
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/value.CustomFieldValue"
          },
          "type": "array"
        }
      },
      "required": [
        "Values"
      ],
      "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"
        }
      },
      "required": [
        "company",
        "companyOptions",
        "tags"
      ],
      "title": "Request",
      "type": "object"
    },
    "company.Response": {
      "description": "Response contains information about a specific company.",
      "properties": {
        "company": {
          "$ref": "#/definitions/view.Company"
        },
        "included": {
          "properties": {
            "clientPortals": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ClientPortal"
              },
              "type": "object"
            },
            "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"
        }
      },
      "required": [
        "company",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "companyDomains"
      ],
      "title": "BulkRequest",
      "type": "object"
    },
    "companydomain.Domain": {
      "description": "Domain contains all the information returned from a domain.",
      "properties": {
        "companyId": {
          "type": "integer"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "domain",
        "companyId"
      ],
      "title": "Domain",
      "type": "object"
    },
    "companydomain.Request": {
      "description": "Request contains information of a company domains to be updated.",
      "properties": {
        "companyDomain": {
          "$ref": "#/definitions/companydomain.Domain"
        }
      },
      "required": [
        "companyDomain"
      ],
      "title": "Request",
      "type": "object"
    },
    "complete.Response": {
      "description": "Response contains information about a specific complete.",
      "properties": {
        "data": {
          "$ref": "#/definitions/complete.TaskMetricComplete"
        }
      },
      "required": [
        "data"
      ],
      "title": "Response",
      "type": "object"
    },
    "complete.TaskMetricComplete": {
      "description": "TaskMetricComplete contains all the information returned from a complete.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "value"
      ],
      "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"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "isPinned": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "containers",
        "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"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "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"
            },
            "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"
        }
      },
      "required": [
        "data",
        "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"
        }
      },
      "required": [
        "taskId",
        "projectId",
        "loggedTime",
        "estimatedTime",
        "taskStatus"
      ],
      "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.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"
        }
      },
      "required": [
        "data",
        "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"
        }
      },
      "required": [
        "overestimatedCount",
        "underestimatedCount",
        "withinMargins",
        "noEstimation",
        "count",
        "estimatedTime",
        "loggedTime"
      ],
      "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"
        }
      },
      "required": [
        "container"
      ],
      "title": "Request",
      "type": "object"
    },
    "container.Response": {
      "description": "Response contains information about a specific container.",
      "properties": {
        "container": {
          "$ref": "#/definitions/view.Container"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "config"
      ],
      "title": "Widget",
      "type": "object"
    },
    "customexchangerate.CreateRequest": {
      "description": "CreateRequest represents the request payload for creating a custom exchange rate.",
      "properties": {
        "fromCurrency": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "options": {
          "$ref": "#/definitions/customexchangerate.Options"
        },
        "rate": {
          "type": "number"
        },
        "toCurrency": {
          "type": "string"
        },
        "validFrom": {
          "description": "Date format (2006-01-02)",
          "format": "date",
          "type": "string"
        },
        "validTo": {
          "description": "Optional date format",
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "fromCurrency",
        "toCurrency",
        "rate",
        "validFrom",
        "notes",
        "options"
      ],
      "title": "CreateRequest",
      "type": "object"
    },
    "customexchangerate.CustomExchangeRateResponse": {
      "description": "CustomExchangeRateResponse represents a single custom exchange rate response.",
      "properties": {
        "customExchangeRate": {
          "$ref": "#/definitions/customexchangerate.CustomExchangeRateView"
        }
      },
      "required": [
        "customExchangeRate"
      ],
      "title": "CustomExchangeRateResponse",
      "type": "object"
    },
    "customexchangerate.CustomExchangeRateView": {
      "description": "CustomExchangeRateView represents the view model for a custom exchange rate.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "fromCurrency": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "notes": {
          "type": "string"
        },
        "rate": {
          "type": "number"
        },
        "toCurrency": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "validFrom": {
          "format": "date",
          "type": "string"
        },
        "validTo": {
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "id",
        "fromCurrency",
        "toCurrency",
        "rate",
        "validFrom",
        "notes",
        "createdAt",
        "createdBy",
        "updatedAt",
        "updatedBy"
      ],
      "title": "CustomExchangeRateView",
      "type": "object"
    },
    "customexchangerate.CustomExchangeRatesResponse": {
      "description": "CustomExchangeRatesResponse represents a list of custom exchange rates response.",
      "properties": {
        "customExchangeRates": {
          "items": {
            "$ref": "#/definitions/customexchangerate.CustomExchangeRateView"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customExchangeRates",
        "meta",
        "included"
      ],
      "title": "CustomExchangeRatesResponse",
      "type": "object"
    },
    "customexchangerate.Options": {
      "description": "Options has options for events related to requests.",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        }
      },
      "title": "Options",
      "type": "object"
    },
    "customexchangerate.UpdateRequest": {
      "description": "UpdateRequest represents the request payload for updating a custom exchange rate (PATCH).",
      "properties": {
        "notes": {
          "type": "string"
        },
        "options": {
          "$ref": "#/definitions/customexchangerate.Options"
        },
        "rate": {
          "type": "number"
        },
        "validFrom": {
          "format": "date",
          "type": "string"
        },
        "validTo": {
          "description": "Can be null to clear",
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "rate",
        "validFrom",
        "validTo",
        "notes",
        "options"
      ],
      "title": "UpdateRequest",
      "type": "object"
    },
    "customfield.BulkDeleteRequest": {
      "description": "BulkDeleteRequest contains the ids of the custom fields that should be\nremoved.",
      "properties": {
        "customfieldIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customfieldIds"
      ],
      "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": {
          "properties": {
            "choices": {
              "description": "Set for the dropdown, multiselect and status types.",
              "items": {
                "properties": {
                  "color": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "color": {
              "description": "Set for the rating type.",
              "type": "string"
            },
            "decimals": {
              "description": "Set for the number decimal type.",
              "type": "integer"
            },
            "icon": {
              "description": "Set for the rating type.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "privacy": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "projectId": {
          "type": "integer"
        },
        "required": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "unitId": {
          "type": "integer"
        },
        "visibilities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "options",
        "formula",
        "visibilities"
      ],
      "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"
        }
      },
      "required": [
        "customfields",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "customfield"
      ],
      "title": "Request",
      "type": "object"
    },
    "customfield.Response": {
      "description": "Response contains information about a specific customfield.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "customfield": {
          "$ref": "#/definitions/view.CustomField"
        }
      },
      "required": [
        "customfield"
      ],
      "title": "Response",
      "type": "object"
    },
    "customfield.ValidateFormulaResponse": {
      "description": "ValidateFormulaResponse contains information about formula validation.",
      "properties": {
        "ExpectedType": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        }
      },
      "required": [
        "unit",
        "ExpectedType"
      ],
      "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"
        }
      },
      "required": [
        "definition"
      ],
      "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"
        }
      },
      "required": [
        "customItems",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "customItem",
        "customItemOptions"
      ],
      "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"
        }
      },
      "required": [
        "customItem",
        "included"
      ],
      "title": "Response",
      "type": "object"
    },
    "customreport.BuilderResponse": {
      "description": "BuilderResponse contains information about the available custom report\nsources.",
      "properties": {
        "customReportBuilder": {
          "items": {
            "$ref": "#/definitions/view.CustomReportBuilder"
          },
          "type": "array"
        }
      },
      "required": [
        "customReportBuilder"
      ],
      "title": "BuilderResponse",
      "type": "object"
    },
    "customreport.BulkDeleteRequest": {
      "description": "BulkDeleteRequest contains the ids of the custom reports that should be\nremoved.",
      "properties": {
        "customReportIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customReportIds"
      ],
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "customreport.CustomReportsResponse": {
      "description": "CustomReportsResponse contains information about a group of custom reports.",
      "properties": {
        "customReports": {
          "items": {
            "$ref": "#/definitions/view.CustomReport"
          },
          "type": "array"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "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"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customReports",
        "meta",
        "included"
      ],
      "title": "CustomReportsResponse",
      "type": "object"
    },
    "customreport.DataResponse": {
      "description": "DataResponse contains custom report data.",
      "properties": {
        "customReportData": {
          "$ref": "#/definitions/view.CustomReportData"
        },
        "included": {
          "properties": {
            "customReports": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomReport"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customReportData",
        "meta",
        "included"
      ],
      "title": "DataResponse",
      "type": "object"
    },
    "customreport.Response": {
      "description": "Response contains information about a custom report.",
      "properties": {
        "customReport": {
          "$ref": "#/definitions/view.CustomReport"
        },
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "customfields": {
              "additionalProperties": {
                "$ref": "#/definitions/view.CustomField"
              },
              "type": "object"
            },
            "milestones": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Milestone"
              },
              "type": "object"
            },
            "projectCategories": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectCategory"
              },
              "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"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "customReport",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "dashboards",
        "meta",
        "included"
      ],
      "title": "UserDashboardsResponse",
      "type": "object"
    },
    "deadline.MilestoneMetricDeadline": {
      "description": "MilestoneMetricDeadline contains all the information returned from a deadline.",
      "properties": {
        "date": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "date",
        "value"
      ],
      "title": "MilestoneMetricDeadline",
      "type": "object"
    },
    "deadline.MilestoneMetricDeadlinesResponse": {
      "description": "MilestoneMetricDeadlinesResponse contains information about a group of deadlines.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/deadline.MilestoneMetricDeadline"
          },
          "type": "array"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "domains",
        "meta"
      ],
      "title": "BulkResponse",
      "type": "object"
    },
    "domain.Response": {
      "description": "Response contains information about a specific domain.",
      "properties": {
        "domain": {
          "$ref": "#/definitions/view.CompanyDomain"
        }
      },
      "required": [
        "domain"
      ],
      "title": "Response",
      "type": "object"
    },
    "entity.AutoScheduleRespDayTask": {
      "description": "AutoScheduleRespDayTask is one task entry within a user-day.",
      "properties": {
        "estimatedTime": {
          "description": "minutes this user works on the task this day",
          "type": "integer"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "required": [
        "taskId",
        "estimatedTime"
      ],
      "title": "AutoScheduleRespDayTask",
      "type": "object"
    },
    "entity.AutoScheduleRespTask": {
      "description": "AutoScheduleRespTask is one entry in AutoScheduleResponse.Tasks.",
      "properties": {
        "assigneeIds": {
          "description": "resolved users; empty for 0-estimate tasks",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "endDate": {
          "description": "YYYY-MM-DD, last day with work",
          "type": "string"
        },
        "projectId": {
          "type": "integer"
        },
        "startDate": {
          "description": "YYYY-MM-DD, first day with work",
          "type": "string"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "required": [
        "taskId",
        "projectId",
        "startDate",
        "endDate",
        "assigneeIds"
      ],
      "title": "AutoScheduleRespTask",
      "type": "object"
    },
    "entity.AutoScheduleRespUser": {
      "description": "AutoScheduleRespUser is one entry in AutoScheduleResponse.Users.",
      "properties": {
        "dates": {
          "items": {
            "$ref": "#/definitions/entity.AutoScheduleRespUserDate"
          },
          "type": "array"
        },
        "userId": {
          "type": "integer"
        }
      },
      "required": [
        "userId",
        "dates"
      ],
      "title": "AutoScheduleRespUser",
      "type": "object"
    },
    "entity.AutoScheduleRespUserDate": {
      "description": "AutoScheduleRespUserDate is one day entry in AutoScheduleRespUser.Dates.",
      "properties": {
        "date": {
          "type": "string"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/entity.AutoScheduleRespDayTask"
          },
          "type": "array"
        }
      },
      "required": [
        "date",
        "tasks"
      ],
      "title": "AutoScheduleRespUserDate",
      "type": "object"
    },
    "entity.AutoScheduleResponse": {
      "description": "AutoScheduleResponse is the scheduling result. It offers two complementary\nviews: per-user-per-day allocations (Users) and per-task date + assignee\nsummaries (Tasks). All input tasks appear either in Tasks or in\nUnscheduledTasks (never both, never neither).",
      "properties": {
        "status": {
          "description": "Status is only populated by the scheduler's solver-failure envelope\n(INFEASIBLE / MODEL_INVALID / UNKNOWN). A normal solve omits it.\nThe client uses it for the defensive 502 guard; 05/06 ignore it.",
          "type": "string"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/entity.AutoScheduleRespTask"
          },
          "type": "array"
        },
        "unscheduledTasks": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/entity.AutoScheduleRespUser"
          },
          "type": "array"
        }
      },
      "required": [
        "users",
        "tasks",
        "unscheduledTasks"
      ],
      "title": "AutoScheduleResponse",
      "type": "object"
    },
    "entity.MonthDate": {
      "description": "MonthDate holds a year and month (1-12).",
      "properties": {
        "Month": {
          "type": "integer"
        },
        "Year": {
          "type": "integer"
        }
      },
      "required": [
        "Year",
        "Month"
      ],
      "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"
        }
      },
      "required": [
        "count"
      ],
      "title": "ProjectBudgetRange",
      "type": "object"
    },
    "entity.RemindAt": {
      "description": "RemindAt is a custom type allowing either datetime or time.",
      "title": "RemindAt",
      "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"
        }
      },
      "required": [
        "ProjectID"
      ],
      "title": "Timeblock",
      "type": "object"
    },
    "entity.WeekDate": {
      "description": "WeekDate holds information from a ISO-8601 week",
      "properties": {
        "Week": {
          "type": "integer"
        },
        "Year": {
          "type": "integer"
        }
      },
      "required": [
        "Year",
        "Week"
      ],
      "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"
        }
      },
      "required": [
        "calendarId",
        "iCalUID",
        "summary",
        "description",
        "videoCallLink",
        "htmlLink",
        "color",
        "organizer",
        "eventCreator",
        "start",
        "end",
        "allDay",
        "attendees",
        "attendeesOmitted",
        "location",
        "type",
        "status",
        "transparency",
        "visibility",
        "recurrence",
        "recurringEventId",
        "guestsCanInviteOthers",
        "guestsCanModify",
        "guestsCanSeeOtherGuests",
        "timeblock",
        "calOwnerCanEdit",
        "exDate"
      ],
      "title": "CalendarEvent",
      "type": "object"
    },
    "event.CalendarEventDate": {
      "description": "CalendarEventDate stores information about a date of an event.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "required": [
        "dateTime",
        "timeZone"
      ],
      "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.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"
            },
            "timelogs": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Timelog"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "events",
        "meta",
        "included"
      ],
      "title": "CalendarEventsResponse",
      "type": "object"
    },
    "event.Request": {
      "description": "Request contains information of a event to be created or updated.",
      "properties": {
        "event": {
          "$ref": "#/definitions/event.CalendarEvent"
        }
      },
      "required": [
        "event"
      ],
      "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.ProjectV205"
              },
              "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"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "event",
        "included"
      ],
      "title": "Response",
      "type": "object"
    },
    "event.taskFromEventResponse": {
      "properties": {
        "taskId": {
          "type": "integer"
        }
      },
      "required": [
        "taskId"
      ],
      "title": "taskFromEventResponse",
      "type": "object"
    },
    "exchangerate.ExchangeRate": {
      "description": "ExchangeRate represents a single exchange rate.",
      "properties": {
        "date": {
          "format": "date",
          "type": "string"
        },
        "fromCurrency": {
          "type": "string"
        },
        "rate": {
          "type": "number"
        },
        "toCurrency": {
          "type": "string"
        }
      },
      "required": [
        "fromCurrency",
        "toCurrency",
        "rate",
        "date"
      ],
      "title": "ExchangeRate",
      "type": "object"
    },
    "exchangerate.ExchangeRateResponse": {
      "description": "ExchangeRateResponse contains a single exchange rate conversion.",
      "properties": {
        "exchangeRate": {
          "$ref": "#/definitions/exchangerate.ExchangeRate"
        }
      },
      "required": [
        "exchangeRate"
      ],
      "title": "ExchangeRateResponse",
      "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"
        }
      },
      "required": [
        "baseCurrency",
        "rates"
      ],
      "title": "ExchangeRatesResponse",
      "type": "object"
    },
    "exchangerate.LiveRatesForCustomPairsResponse": {
      "description": "LiveRatesForCustomPairsResponse contains live exchange rates for all custom-defined currency pairs.",
      "properties": {
        "rates": {
          "items": {
            "$ref": "#/definitions/exchangerate.ExchangeRate"
          },
          "type": "array"
        }
      },
      "required": [
        "rates"
      ],
      "title": "LiveRatesForCustomPairsResponse",
      "type": "object"
    },
    "field.CustomItemField": {
      "description": "CustomItemField contains all the information returned from a field.",
      "properties": {
        "definition": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "formula": {
          "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"
        }
      },
      "required": [
        "customItemFields",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "customItemField",
        "customItemFieldOptions"
      ],
      "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"
        }
      },
      "required": [
        "customItemField",
        "included"
      ],
      "title": "Response",
      "type": "object"
    },
    "field.VerifyFormulaRequest": {
      "description": "VerifyFormulaRequest is the body of POST\n/customitems/{customItemId}/fields/validate-formula.json. FieldID is the\nfield being edited; omit it when validating a brand-new field.",
      "properties": {
        "fieldId": {
          "type": "integer"
        },
        "formula": {
          "type": "string"
        }
      },
      "required": [
        "formula",
        "fieldId"
      ],
      "title": "VerifyFormulaRequest",
      "type": "object"
    },
    "field.VerifyFormulaResponse": {
      "description": "VerifyFormulaResponse is the body of POST\n/customitems/{customItemId}/fields/validate-formula.json. Unit is the\nformula's output unit; Errors is populated when validation failed.",
      "properties": {
        "errors": {
          "items": {
            "$ref": "#/definitions/view.Error"
          },
          "type": "array"
        },
        "unit": {
          "type": "string"
        }
      },
      "required": [
        "unit"
      ],
      "title": "VerifyFormulaResponse",
      "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"
        }
      },
      "required": [
        "hostObject",
        "title",
        "copyAssignees",
        "generateToken",
        "projectIds"
      ],
      "title": "CopyForm",
      "type": "object"
    },
    "form.CopyRequest": {
      "description": "CopyRequest outter request for copying a form",
      "properties": {
        "form": {
          "$ref": "#/definitions/form.CopyForm"
        }
      },
      "required": [
        "form"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DestinationObject",
      "type": "object"
    },
    "form.Form": {
      "description": "Form contains information of a form to be created or updated.",
      "properties": {
        "addSubmitterAsFollower": {
          "type": "boolean"
        },
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/form.Content"
        },
        "createAsSubmitter": {
          "type": "boolean"
        },
        "createFormTask": {
          "type": "boolean"
        },
        "destinationObject": {
          "$ref": "#/definitions/form.DestinationObject"
        },
        "hostObject": {
          "$ref": "#/definitions/form.HostObject"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "notifyTaskAssignees": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "responseEmailFieldId": {
          "type": "string"
        },
        "restrictToProjectUsers": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "forms",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "type",
        "meta"
      ],
      "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"
        }
      },
      "required": [
        "form"
      ],
      "title": "PublicResponse",
      "type": "object"
    },
    "form.Request": {
      "description": "Request contains information of a form to be created or updated.",
      "properties": {
        "form": {
          "$ref": "#/definitions/form.Form"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "form",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "projectId",
        "score",
        "indicators"
      ],
      "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"
        }
      },
      "required": [
        "healthScores",
        "meta"
      ],
      "title": "HealthScoresResponse",
      "type": "object"
    },
    "health.Included": {
      "description": "Included contains sideloaded resources for health scores.",
      "properties": {
        "projects": {
          "additionalProperties": {
            "$ref": "#/definitions/view.ProjectV205"
          },
          "type": "object"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "health.ProjectMetricHealth": {
      "description": "ProjectMetricHealth stores a specific health counter.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "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"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "name",
        "weight",
        "key",
        "taskId",
        "description",
        "penalty"
      ],
      "title": "HealthScoreIndicator",
      "type": "object"
    },
    "importer.Importer": {
      "description": "Importer single importer for response.",
      "properties": {
        "name": {
          "type": "string"
        },
        "running": {
          "type": "boolean"
        },
        "status": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "running",
        "status"
      ],
      "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"
        }
      },
      "required": [
        "importers",
        "isImporting"
      ],
      "title": "ImportersResponse",
      "type": "object"
    },
    "invoice.ProjectMetricInvoicesResponse": {
      "description": "ProjectMetricInvoicesResponse contains information about a group of invoices.",
      "properties": {
        "data": {
          "properties": {
            "value": {
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "rate",
        "createdAt",
        "createdBy"
      ],
      "title": "BillableRate",
      "type": "object"
    },
    "jobrole.BillableRateAmount": {
      "description": "BillableRateAmount represents the amount for a specific currency.",
      "properties": {
        "amount": {
          "type": "number"
        }
      },
      "required": [
        "amount"
      ],
      "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"
        }
      },
      "required": [
        "billableRatesByCurrencyId"
      ],
      "title": "BillableRatesRequest",
      "type": "object"
    },
    "jobrole.CostRateAmount": {
      "description": "CostRateAmount represents the amount for a specific currency.",
      "properties": {
        "amount": {
          "type": "number"
        }
      },
      "required": [
        "amount"
      ],
      "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"
        }
      },
      "required": [
        "costRateByCurrencyId"
      ],
      "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"
        }
      },
      "required": [
        "name",
        "billableRatesByCurrencyId",
        "costRatesByCurrencyId"
      ],
      "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"
        }
      },
      "required": [
        "costRateByCurrencyId",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "billableRateByCurrencyId",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "jobRoles",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "jobRole",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "rate",
        "createdByUserId",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "users",
        "isPrimary"
      ],
      "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"
        }
      },
      "required": [
        "data"
      ],
      "title": "Response",
      "type": "object"
    },
    "late.TaskMetricLate": {
      "description": "TaskMetricLate contains count information about late tasks.",
      "properties": {
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "value"
      ],
      "title": "TaskMetricLate",
      "type": "object"
    },
    "me.Response2": {
      "description": "Response contains information about me.",
      "properties": {
        "person": {
          "$ref": "#/definitions/view.UserMe"
        }
      },
      "required": [
        "person"
      ],
      "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"
        }
      },
      "required": [
        "messages",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "message",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "messageReplies",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "messageReply",
        "included"
      ],
      "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.ProjectV205"
              },
              "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"
        }
      },
      "required": [
        "milestones",
        "meta"
      ],
      "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"
        }
      },
      "required": [
        "milestones",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "milestone",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "tagIds",
        "categoryId"
      ],
      "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"
        }
      },
      "required": [
        "notebooks",
        "meta",
        "included"
      ],
      "title": "NotebooksResponse",
      "type": "object"
    },
    "notebook.Request": {
      "description": "Request contains information of a notebook to be created or updated.",
      "properties": {
        "notebook": {
          "$ref": "#/definitions/notebook.Notebook"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "notebook",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "version",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "versions",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "notification"
      ],
      "title": "ProjectBudgetRequest",
      "type": "object"
    },
    "notification.Response": {
      "description": "Response contains information about a specific notification.",
      "properties": {
        "notification": {
          "$ref": "#/definitions/view.ProjectBudgetNotification"
        }
      },
      "required": [
        "notification"
      ],
      "title": "Response",
      "type": "object"
    },
    "owner.ProjectMetricOwner": {
      "description": "ProjectMetricOwner contains information about a specific owner.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "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"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "title": "ProjectMetricOwnersResponse",
      "type": "object"
    },
    "payload.Notify": {
      "description": "Notify defines the access lists.",
      "properties": {
        "ids": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "type": {
          "$ref": "#/definitions/payload.NotifyType"
        }
      },
      "required": [
        "type",
        "ids"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "title": "NullableCalendarType",
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "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"
        }
      },
      "required": [
        "Value",
        "Null",
        "Set"
      ],
      "title": "NullableWorkingHourEntryWeekdays",
      "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"
        }
      },
      "required": [
        "userIds",
        "companyIds",
        "teamIds",
        "jobRoleIds"
      ],
      "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"
        }
      },
      "required": [
        "usersAdded",
        "usersAlreadyInProject",
        "usersNotAdded"
      ],
      "title": "AddPeopleToProjectResponse",
      "type": "object"
    },
    "people.MultiResponse": {
      "description": "MultiResponse contains information about a group of users.",
      "properties": {
        "failed": {
          "items": {
            "$ref": "#/definitions/view.BulkFailure"
          },
          "type": "array"
        },
        "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"
        }
      },
      "required": [
        "people",
        "meta",
        "included"
      ],
      "title": "MultiResponse",
      "type": "object"
    },
    "people.Person": {
      "description": "Person contains the fields for creating a new user.",
      "properties": {
        "accessProjectIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "accessProjectsCompanyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "addressCity": {
          "type": "string"
        },
        "addressLine1": {
          "description": "Address fields",
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressState": {
          "type": "string"
        },
        "addressZip": {
          "type": "string"
        },
        "allowEmailNotifications": {
          "type": "boolean"
        },
        "assignDefaultProjects": {
          "type": "boolean"
        },
        "autoGiveProjectAccess": {
          "type": "boolean"
        },
        "avatarPendingFileRef": {
          "type": "string"
        },
        "avatarS3Path": {
          "description": "Avatar",
          "type": "string"
        },
        "billableRate": {
          "description": "Billable rate in cents. Optional; requires a plan that includes billable rates.",
          "type": "integer"
        },
        "calendarStartsOnSunday": {
          "type": "boolean"
        },
        "canAccessAllProjects": {
          "type": "boolean"
        },
        "canAccessCalendar": {
          "type": "boolean"
        },
        "canAccessPortfolio": {
          "type": "boolean"
        },
        "canAddCustomReports": {
          "type": "boolean"
        },
        "canAddProjects": {
          "type": "boolean"
        },
        "canEditWorkflows": {
          "type": "boolean"
        },
        "canManageCustomFields": {
          "type": "boolean"
        },
        "canManageFixedFeeBudgets": {
          "type": "boolean"
        },
        "canManagePeople": {
          "type": "boolean"
        },
        "canManagePortfolio": {
          "type": "boolean"
        },
        "canManageProjectTemplates": {
          "type": "boolean"
        },
        "canManagePublicHolidays": {
          "type": "boolean"
        },
        "canManageQuotes": {
          "type": "boolean"
        },
        "canManageSchedule": {
          "type": "boolean"
        },
        "canManageTimeReminders": {
          "type": "boolean"
        },
        "canViewProjectTemplates": {
          "type": "boolean"
        },
        "canViewSchedule": {
          "type": "boolean"
        },
        "canViewWorkflows": {
          "type": "boolean"
        },
        "clientPortalIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "companyId": {
          "type": "integer"
        },
        "companyName": {
          "description": "Company name, resolved create-or-use server-side (matched case-insensitively; created if\nmissing) when companyId is not supplied. Ignored if companyId is set.",
          "type": "string"
        },
        "costRate": {
          "description": "Cost rate in cents. Optional; can only be set by an administrator in the account's owner company.",
          "type": "integer"
        },
        "countryCode": {
          "type": "string"
        },
        "dailyReportDaysFilter": {
          "description": "1–100",
          "type": "integer"
        },
        "dateFormat": {
          "description": "Date format by string name (alternative to dateFormatId)",
          "type": "string"
        },
        "dateFormatId": {
          "type": "integer"
        },
        "email": {
          "type": "string"
        },
        "emailAlt1": {
          "description": "Alt emails",
          "type": "string"
        },
        "emailAlt2": {
          "type": "string"
        },
        "emailAlt3": {
          "type": "string"
        },
        "facebook": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "fullName": {
          "description": "used when UserInviteModeFullName",
          "type": "string"
        },
        "imHandle": {
          "type": "string"
        },
        "imService": {
          "type": "string"
        },
        "inviteType": {
          "type": "string"
        },
        "isAdmin": {
          "description": "Permission overrides — all optional; service applies defaults per user type and installation age.",
          "type": "boolean"
        },
        "isClientUser": {
          "description": "Client/service user flags (only site admins can set these)",
          "type": "boolean"
        },
        "isServiceAccount": {
          "type": "boolean"
        },
        "isTempName": {
          "description": "Identity / misc",
          "type": "boolean"
        },
        "jobRoleIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "jobRoles": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "language": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "lengthOfDay": {
          "description": "Working time",
          "type": "number"
        },
        "linkedin": {
          "type": "string"
        },
        "loginTarget": {
          "description": "Client portal scoping, client users only.",
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "notifyOnAddedAsFollower": {
          "type": "boolean"
        },
        "notifyOnStatusUpdate": {
          "type": "boolean"
        },
        "openID": {
          "type": "string"
        },
        "password": {
          "description": "Password (if setting a specific password)",
          "type": "string"
        },
        "phoneNumberFax": {
          "type": "string"
        },
        "phoneNumberHome": {
          "type": "string"
        },
        "phoneNumberMobile": {
          "type": "string"
        },
        "phoneNumberMobileCountryCode": {
          "type": "string"
        },
        "phoneNumberMobilePrefix": {
          "type": "string"
        },
        "phoneNumberOffice": {
          "description": "Profile fields",
          "type": "string"
        },
        "phoneNumberOfficeExt": {
          "type": "string"
        },
        "privateNotes": {
          "type": "string"
        },
        "profile": {
          "type": "string"
        },
        "receiveDailyReports": {
          "description": "Daily report preferences",
          "type": "boolean"
        },
        "receiveDailyReportsAtTime": {
          "description": "0–23",
          "type": "integer"
        },
        "receiveDailyReportsAtWeekend": {
          "type": "boolean"
        },
        "receiveDailyReportsIfEmpty": {
          "type": "boolean"
        },
        "receiveNotifyWarnings": {
          "type": "boolean"
        },
        "sendInvite": {
          "description": "Invite fields",
          "type": "boolean"
        },
        "sendInviteWithMessage": {
          "type": "string"
        },
        "setProjectAdmin": {
          "type": "boolean"
        },
        "skillIds": {
          "description": "Skill IDs to assign (optional)",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "skills": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "soundAlertsEnabled": {
          "description": "Notification preferences",
          "type": "boolean"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "teammateType": {
          "description": "Teammate type (required when userType is \"teammate\")",
          "type": "string"
        },
        "textFormat": {
          "type": "string"
        },
        "timeFormatId": {
          "type": "integer"
        },
        "timezoneId": {
          "description": "Locale overrides (default from session user's settings if not specified)",
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "twitterName": {
          "type": "string"
        },
        "useShorthandDurations": {
          "type": "boolean"
        },
        "userInvited": {
          "type": "integer"
        },
        "userType": {
          "type": "string"
        },
        "utilizationTarget": {
          "type": "number"
        },
        "website": {
          "type": "string"
        },
        "workingHourEntries": {
          "items": {
            "$ref": "#/definitions/people.WorkingHourEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "firstName",
        "lastName",
        "email",
        "clientPortalIds",
        "tags",
        "tagIds",
        "skills",
        "jobRoles",
        "teamIds",
        "accessProjectIds",
        "accessProjectsCompanyIds",
        "skillIds"
      ],
      "title": "Person",
      "type": "object"
    },
    "people.PersonOptions": {
      "description": "PersonOptions contains optional behaviour flags for creating a person.",
      "properties": {
        "adminOnTrialProjects": {
          "type": "boolean"
        },
        "continueIfUserExists": {
          "type": "boolean"
        },
        "createCollaboratorIfNoSeats": {
          "type": "boolean"
        },
        "fireWebhook": {
          "type": "boolean"
        },
        "source": {
          "type": "string"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "PersonOptions",
      "type": "object"
    },
    "people.PersonRequest": {
      "description": "PersonRequest contains the information of a person to be created.",
      "properties": {
        "options": {
          "$ref": "#/definitions/people.PersonOptions"
        },
        "person": {
          "$ref": "#/definitions/people.Person"
        }
      },
      "required": [
        "person"
      ],
      "title": "PersonRequest",
      "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"
        }
      },
      "required": [
        "person",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "userId",
        "activeProjects",
        "projects",
        "assignedTasks",
        "completedTasks",
        "overdueTasks"
      ],
      "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"
        }
      },
      "required": [
        "taskCompletions",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "totalAssignedTasks",
        "totalCompletedTasks",
        "totalOverdueTasks",
        "users"
      ],
      "title": "TaskCompletions",
      "type": "object"
    },
    "people.UsersPayload": {
      "description": "UsersPayload consists of userIDs",
      "properties": {
        "checkTeamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "userIds",
        "checkTeamIds"
      ],
      "title": "UsersPayload",
      "type": "object"
    },
    "people.WorkingHourEntry": {
      "description": "WorkingHourEntry contains a single day's working hours for a placeholder user.",
      "properties": {
        "endTime": {
          "type": "string"
        },
        "startTime": {
          "type": "string"
        },
        "taskHours": {
          "type": "number"
        },
        "weekday": {
          "type": "string"
        }
      },
      "required": [
        "weekday",
        "startTime",
        "endTime",
        "taskHours"
      ],
      "title": "WorkingHourEntry",
      "type": "object"
    },
    "performance.PeopleMetricPerformance": {
      "description": "PeopleMetricPerformance contains all the information returned from a performance.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "title": "PeopleMetricPerformance",
      "type": "object"
    },
    "performance.PeopleMetricPerformancesResponse": {
      "description": "PeopleMetricPerformancesResponse contains information about a group of performances.",
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/performance.PeopleMetricPerformance"
          },
          "type": "array"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "userId",
        "user",
        "capacities"
      ],
      "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"
        }
      },
      "required": [
        "tasks",
        "capacity",
        "estimateMinutesTotal",
        "lengthOfDayMinutes"
      ],
      "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"
        }
      },
      "required": [
        "taskId",
        "estimateMinutes"
      ],
      "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"
        }
      },
      "required": [
        "planners",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "features",
        "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"
        }
      },
      "required": [
        "plans",
        "meta"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "installationId",
        "projectId",
        "numVisibleTabs",
        "list",
        "board",
        "gantt",
        "table",
        "dashboard",
        "milestones",
        "messages",
        "files",
        "time",
        "notebooks",
        "risks",
        "links",
        "billing",
        "comments",
        "people",
        "settings",
        "forms",
        "finance",
        "proofs",
        "tickets",
        "schedule",
        "timeline"
      ],
      "title": "FeatureOrder",
      "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"
        }
      },
      "required": [
        "featureOrderOptions"
      ],
      "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"
        }
      },
      "required": [
        "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.ProjectNumberSettings": {
      "description": "ProjectNumberSettings contains the settings used to generate project number",
      "properties": {
        "autoIncrement": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "nextNumber": {
          "type": "integer"
        },
        "nextProjectNumber": {
          "type": "string"
        },
        "projectNumberPattern": {
          "type": "string"
        },
        "projectNumberText": {
          "type": "string"
        },
        "startNumber": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        }
      },
      "required": [
        "projectNumberText",
        "projectNumberPattern",
        "startNumber",
        "nextNumber",
        "autoIncrement",
        "nextProjectNumber"
      ],
      "title": "ProjectNumberSettings",
      "type": "object"
    },
    "project.ProjectNumberSettingsPayload": {
      "description": "ProjectNumberSettingsPayload holds the editable fields for project number settings",
      "properties": {
        "autoIncrement": {
          "type": "boolean"
        },
        "nextNumber": {
          "type": "integer"
        },
        "projectNumberPattern": {
          "type": "string"
        },
        "projectNumberText": {
          "type": "string"
        },
        "startNumber": {
          "type": "string"
        }
      },
      "title": "ProjectNumberSettingsPayload",
      "type": "object"
    },
    "project.ProjectNumberSettingsRequest": {
      "description": "ProjectNumberSettingsRequest is the payload used to create or update project number settings.",
      "properties": {
        "projectNumberSettings": {
          "$ref": "#/definitions/project.ProjectNumberSettingsPayload"
        }
      },
      "required": [
        "projectNumberSettings"
      ],
      "title": "ProjectNumberSettingsRequest",
      "type": "object"
    },
    "project.ProjectNumberSettingsResponse": {
      "description": "ProjectNumberSettingsResponse is the api response containing the project number settings",
      "properties": {
        "projectNumberSettings": {
          "$ref": "#/definitions/project.ProjectNumberSettings"
        }
      },
      "required": [
        "projectNumberSettings"
      ],
      "title": "ProjectNumberSettingsResponse",
      "type": "object"
    },
    "project.RequiredCustomFieldRequest": {
      "description": "RequiredCustomFieldRequest contains the required custom field id",
      "properties": {
        "customFieldIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customFieldIds"
      ],
      "title": "RequiredCustomFieldRequest",
      "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"
        }
      },
      "required": [
        "projects",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "projects",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "projects",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "project",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "budgets",
        "meta",
        "included"
      ],
      "title": "BudgetsResponse",
      "type": "object"
    },
    "quote.ExportPrefAssigneeView": {
      "description": "ExportPrefAssigneeView represents an assignee entry in the export preferences response.",
      "properties": {
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id"
      ],
      "title": "ExportPrefAssigneeView",
      "type": "object"
    },
    "quote.ExportPrefSectionView": {
      "description": "ExportPrefSectionView represents a section in the export preferences response.",
      "properties": {
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "merged": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "merged"
      ],
      "title": "ExportPrefSectionView",
      "type": "object"
    },
    "quote.ExportPrefTypeView": {
      "description": "ExportPrefTypeView represents a type entry in the export preferences response.",
      "properties": {
        "description": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "ExportPrefTypeView",
      "type": "object"
    },
    "quote.ExportPreferencesAssignee": {
      "description": "ExportPreferencesAssignee represents an assignee entry in the export preferences request.",
      "properties": {
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id"
      ],
      "title": "ExportPreferencesAssignee",
      "type": "object"
    },
    "quote.ExportPreferencesMetadata": {
      "description": "ExportPreferencesMetadata contains metadata about the export preferences.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "createdBy",
        "updatedBy",
        "createdAt",
        "updatedAt"
      ],
      "title": "ExportPreferencesMetadata",
      "type": "object"
    },
    "quote.ExportPreferencesOptions": {
      "description": "ExportPreferencesOptions has options for events related to requests.",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        }
      },
      "required": [
        "fireWebhook"
      ],
      "title": "ExportPreferencesOptions",
      "type": "object"
    },
    "quote.ExportPreferencesRequest": {
      "description": "ExportPreferencesRequest is the payload for PUT /quote/:id/export/preferences/:type.",
      "properties": {
        "assignees": {
          "items": {
            "$ref": "#/definitions/quote.ExportPreferencesAssignee"
          },
          "type": "array"
        },
        "columns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "groupBy": {
          "type": "string"
        },
        "options": {
          "$ref": "#/definitions/quote.ExportPreferencesOptions"
        },
        "sections": {
          "items": {
            "$ref": "#/definitions/quote.ExportPreferencesSection"
          },
          "type": "array"
        },
        "types": {
          "items": {
            "$ref": "#/definitions/quote.ExportPreferencesType"
          },
          "type": "array"
        }
      },
      "required": [
        "columns",
        "sections",
        "types",
        "assignees",
        "options"
      ],
      "title": "ExportPreferencesRequest",
      "type": "object"
    },
    "quote.ExportPreferencesResponse": {
      "description": "ExportPreferencesResponse is the response for GET /quote/:id/export/preferences.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "summarizationPreferences": {
          "additionalProperties": {
            "$ref": "#/definitions/quote.ExportPreferencesView"
          },
          "type": "object"
        }
      },
      "required": [
        "summarizationPreferences",
        "included"
      ],
      "title": "ExportPreferencesResponse",
      "type": "object"
    },
    "quote.ExportPreferencesSection": {
      "description": "ExportPreferencesSection represents a section's export preferences in the request payload.",
      "properties": {
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "merged": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "merged"
      ],
      "title": "ExportPreferencesSection",
      "type": "object"
    },
    "quote.ExportPreferencesType": {
      "description": "ExportPreferencesType represents a type entry in the export preferences request.",
      "properties": {
        "description": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "ExportPreferencesType",
      "type": "object"
    },
    "quote.ExportPreferencesView": {
      "description": "ExportPreferencesView represents the export preferences for a single format type.",
      "properties": {
        "assignees": {
          "items": {
            "$ref": "#/definitions/quote.ExportPrefAssigneeView"
          },
          "type": "array"
        },
        "columns": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "groupBy": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/definitions/quote.ExportPreferencesMetadata"
        },
        "sections": {
          "items": {
            "$ref": "#/definitions/quote.ExportPrefSectionView"
          },
          "type": "array"
        },
        "types": {
          "items": {
            "$ref": "#/definitions/quote.ExportPrefTypeView"
          },
          "type": "array"
        }
      },
      "required": [
        "columns",
        "sections",
        "types",
        "assignees",
        "metadata"
      ],
      "title": "ExportPreferencesView",
      "type": "object"
    },
    "quote.QuoteNumberPreviewResponse": {
      "description": "QuoteNumberPreviewResponse holds a company's previewed next quote number.",
      "properties": {
        "quoteNumber": {
          "description": "QuoteNumber is empty when automatic quote numbering is disabled.",
          "type": "string"
        }
      },
      "required": [
        "quoteNumber"
      ],
      "title": "QuoteNumberPreviewResponse",
      "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"
            },
            "exportPreferences": {
              "additionalProperties": {
                "$ref": "#/definitions/quote.ExportPreferencesView"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "quote": {
          "$ref": "#/definitions/view.Quote"
        }
      },
      "required": [
        "quote",
        "included"
      ],
      "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.ProjectV205"
              },
              "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"
        }
      },
      "required": [
        "quotes",
        "meta",
        "included"
      ],
      "title": "QuotesResponse",
      "type": "object"
    },
    "quotelineitem.QuoteLineItemResponse": {
      "description": "QuoteLineItemResponse contains information about a specific quote lineitem.",
      "properties": {
        "quotelineitem": {
          "$ref": "#/definitions/view.QuoteLineItem"
        }
      },
      "required": [
        "quotelineitem"
      ],
      "title": "QuoteLineItemResponse",
      "type": "object"
    },
    "quotesection.QuoteSectionResponse": {
      "description": "QuoteSectionResponse contains information about a specific quote section.",
      "properties": {
        "quotesection": {
          "$ref": "#/definitions/view.QuoteSection"
        }
      },
      "required": [
        "quotesection"
      ],
      "title": "QuoteSectionResponse",
      "type": "object"
    },
    "quotesetting.QuoteSettingResponse": {
      "description": "QuoteSettingResponse is the API response containing a quote setting.",
      "properties": {
        "quoteSetting": {
          "$ref": "#/definitions/quotesetting.QuoteSettingView"
        }
      },
      "required": [
        "quoteSetting"
      ],
      "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"
        }
      },
      "required": [
        "autoQuoteNumbers",
        "signaturesOnPdf",
        "prependStatementOfWork",
        "defaultBillableRateType"
      ],
      "title": "QuoteSettingView",
      "type": "object"
    },
    "record.BulkOptions": {
      "description": "BulkOptions are the batch-wide options of a bulk create.",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        },
        "partialSuccess": {
          "description": "PartialSuccess: true creates the valid rows and reports failures per row\nunder \"failed\"; false (the default) aborts the batch on the first bad\nrow, creating nothing.",
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "BulkOptions",
      "type": "object"
    },
    "record.BulkRecord": {
      "description": "BulkRecord is a single record within a BulkRequest. Sections may be referenced by\nname (created-or-used server-side) and person fields by email (resolved\nserver-side), so an importer need not resolve them per row.\n\nA caller that already holds section ids may send SectionID instead, as the\nsingle-record endpoint takes: it wins over SectionName, and is validated against\nthe custom item like any other, so a section belonging to another item is still\nrefused. Accepting both spares a caller having to know which of the two spellings\nthis endpoint wanted.",
      "properties": {
        "assigneeEmails": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": "object"
        },
        "fieldValues": {
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "positionAfterId": {
          "type": "integer"
        },
        "sectionId": {
          "type": "integer"
        },
        "sectionName": {
          "type": "string"
        }
      },
      "required": [
        "fieldValues",
        "assigneeEmails"
      ],
      "title": "BulkRecord",
      "type": "object"
    },
    "record.BulkRequest": {
      "description": "BulkRequest contains a batch of records to create in a single call.",
      "properties": {
        "options": {
          "$ref": "#/definitions/record.BulkOptions"
        },
        "records": {
          "items": {
            "$ref": "#/definitions/record.BulkRecord"
          },
          "type": "array"
        }
      },
      "required": [
        "records",
        "options"
      ],
      "title": "BulkRequest",
      "type": "object"
    },
    "record.BulkResponse": {
      "description": "BulkResponse contains the records created by a bulk request along with the rows\nthat could not be created (identified by their index in the request).",
      "properties": {
        "customItemRecords": {
          "items": {
            "$ref": "#/definitions/view.CustomItemRecord"
          },
          "type": "array"
        },
        "failed": {
          "items": {
            "$ref": "#/definitions/view.BulkFailure"
          },
          "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"
        }
      },
      "required": [
        "customItemRecords",
        "meta",
        "included"
      ],
      "title": "BulkResponse",
      "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"
        }
      },
      "required": [
        "fieldValues",
        "sectionId"
      ],
      "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"
        }
      },
      "required": [
        "customItemRecords",
        "meta",
        "included"
      ],
      "title": "CustomItemRecordsResponse",
      "type": "object"
    },
    "record.DeleteRequest": {
      "description": "DeleteRequest contains the ids of the custom item fields that should be removed.",
      "properties": {
        "customItemRecordIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "customItemRecordOptions": {
          "properties": {
            "fireWebhook": {
              "type": "boolean"
            },
            "useNotifyViaTWIM": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "customItemRecordIds",
        "customItemRecordOptions"
      ],
      "title": "DeleteRequest",
      "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"
        }
      },
      "required": [
        "customItemRecord",
        "customItemRecordOptions"
      ],
      "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"
        }
      },
      "required": [
        "customItemRecord",
        "included"
      ],
      "title": "Response",
      "type": "object"
    },
    "reminder.Reminder": {
      "description": "Reminder stores all necessary information to create a task reminder for one or more recipients.",
      "properties": {
        "isRelative": {
          "type": "boolean"
        },
        "note": {
          "type": "string"
        },
        "relativeNumberDays": {
          "type": "integer"
        },
        "remindAt": {
          "$ref": "#/definitions/entity.RemindAt"
        },
        "teamIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        },
        "userIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "userIds",
        "teamIds",
        "remindAt",
        "type",
        "isRelative",
        "relativeNumberDays"
      ],
      "title": "Reminder",
      "type": "object"
    },
    "reminder.Request": {
      "description": "Request is the POST body for creating task reminders.",
      "properties": {
        "reminder": {
          "$ref": "#/definitions/reminder.Reminder"
        }
      },
      "required": [
        "reminder"
      ],
      "title": "Request",
      "type": "object"
    },
    "reminder.TaskReminderResponse": {
      "description": "TaskReminderResponse contains information about a single reminder.",
      "properties": {
        "reminder": {
          "$ref": "#/definitions/view.TaskReminder"
        }
      },
      "required": [
        "reminder"
      ],
      "title": "TaskReminderResponse",
      "type": "object"
    },
    "reminder.TaskRemindersResponse": {
      "description": "TaskRemindersResponse contains information about a group of reminders.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "reminders": {
          "items": {
            "$ref": "#/definitions/view.TaskReminder"
          },
          "type": "array"
        }
      },
      "required": [
        "reminders",
        "included"
      ],
      "title": "TaskRemindersResponse",
      "type": "object"
    },
    "report.Layout": {
      "description": "Layout contains all the information of a report source layout.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "Layout",
      "type": "object"
    },
    "report.OAuthStatus": {
      "description": "OAuthStatus is the OAuth status response.",
      "properties": {
        "hasValidToken": {
          "type": "boolean"
        }
      },
      "required": [
        "hasValidToken"
      ],
      "title": "OAuthStatus",
      "type": "object"
    },
    "report.Option": {
      "description": "Option represents a report option.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "title": "Option",
      "type": "object"
    },
    "report.Report": {
      "description": "Report represents a report payload.",
      "properties": {
        "color": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "layoutId": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "sourceId": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "userSavedFilterId": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "format",
        "sourceId"
      ],
      "title": "Report",
      "type": "object"
    },
    "report.Request": {
      "description": "Request contains information of a report to be created or updated.",
      "properties": {
        "report": {
          "$ref": "#/definitions/report.Report"
        },
        "reportOptions": {
          "items": {
            "$ref": "#/definitions/report.Option"
          },
          "type": "array"
        },
        "reportSchedules": {
          "items": {
            "$ref": "#/definitions/report.Schedule"
          },
          "type": "array"
        }
      },
      "required": [
        "reportSchedules",
        "reportOptions"
      ],
      "title": "Request",
      "type": "object"
    },
    "report.ResponseReport": {
      "description": "ResponseReport represents a report response.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "report": {
          "$ref": "#/definitions/report.Report"
        }
      },
      "required": [
        "included"
      ],
      "title": "ResponseReport",
      "type": "object"
    },
    "report.ResponseReportSources": {
      "description": "ResponseReportSources represents a list of report sources response.",
      "properties": {
        "reportSources": {
          "items": {
            "$ref": "#/definitions/report.Source"
          },
          "type": "array"
        }
      },
      "required": [
        "reportSources"
      ],
      "title": "ResponseReportSources",
      "type": "object"
    },
    "report.ResponseReports": {
      "description": "ResponseReports represents a list of reports response.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "reports": {
          "items": {
            "$ref": "#/definitions/report.Report"
          },
          "type": "array"
        }
      },
      "required": [
        "reports",
        "meta",
        "included"
      ],
      "title": "ResponseReports",
      "type": "object"
    },
    "report.ResponseScheduleLog": {
      "description": "ResponseScheduleLog represents a report schedule log response.",
      "properties": {
        "included": {
          "properties": {
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "logs": {
          "items": {
            "$ref": "#/definitions/report.ScheduleLog"
          },
          "type": "array"
        },
        "recipientLogs": {
          "items": {
            "$ref": "#/definitions/report.ScheduleLogEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "logs",
        "included"
      ],
      "title": "ResponseScheduleLog",
      "type": "object"
    },
    "report.Schedule": {
      "description": "Schedule represents a report scheduling payload.",
      "properties": {
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "maxOccurrences": {
          "type": "integer"
        },
        "recipients": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "recurringDaily": {
          "type": "boolean"
        },
        "recurringEvery": {
          "type": "integer"
        },
        "recurringMonthly": {
          "type": "integer"
        },
        "recurringWeekly": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "recurringYearly": {
          "type": "boolean"
        },
        "startDate": {
          "format": "date",
          "type": "string"
        },
        "time": {
          "format": "time",
          "type": "string"
        },
        "timezoneId": {
          "type": "integer"
        }
      },
      "required": [
        "recurringEvery",
        "recurringWeekly",
        "recipients",
        "startDate",
        "time"
      ],
      "title": "Schedule",
      "type": "object"
    },
    "report.ScheduleLog": {
      "description": "ScheduleLog represents a report schedule log response.",
      "properties": {
        "date": {
          "type": "string"
        },
        "deliveryStats": {
          "properties": {
            "failure": {
              "type": "integer"
            },
            "success": {
              "type": "integer"
            }
          },
          "type": "object"
        },
        "downloadUrl": {
          "type": "string"
        },
        "failedRecipientIds": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "plannedRecipientIds": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "status": {
          "type": "string"
        },
        "successfulRecipientIds": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "date",
        "deliveryStats",
        "status"
      ],
      "title": "ScheduleLog",
      "type": "object"
    },
    "report.ScheduleLogEntry": {
      "description": "ScheduleLogEntry represents a report schedule log entry response format.",
      "properties": {
        "file": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "scheduleLog": {
          "$ref": "#/definitions/view.Relationship"
        },
        "scheduleLogId": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "id",
        "scheduleLogId",
        "scheduleLog",
        "file"
      ],
      "title": "ScheduleLogEntry",
      "type": "object"
    },
    "report.Source": {
      "description": "Source contains all the information returned of a report source.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "layouts": {
          "items": {
            "$ref": "#/definitions/report.Layout"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "title": "Source",
      "type": "object"
    },
    "report.deleteReportsRequest": {
      "properties": {
        "reportIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "reportIds"
      ],
      "title": "deleteReportsRequest",
      "type": "object"
    },
    "reportingview.GrantAccessTo": {
      "description": "GrantAccessTo lists who the reporting view is shared with. Collections are\nalways emitted, as empty arrays when nobody of that kind has a grant.",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/reportingview.GrantEntry"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/reportingview.GrantEntry"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/reportingview.GrantEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "users",
        "teams",
        "companies"
      ],
      "title": "GrantAccessTo",
      "type": "object"
    },
    "reportingview.GrantEntry": {
      "description": "GrantEntry is a single grantee of the reporting view: the user, team or\ncompany id together with its grant level (\"view\" or \"edit\").",
      "properties": {
        "grant": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "grant"
      ],
      "title": "GrantEntry",
      "type": "object"
    },
    "reportingview.ReportingView": {
      "description": "ReportingView is the API representation of a persisted reporting view. The\nConfig blob is emitted byte-identical to what was stored, without\nre-encoding.",
      "properties": {
        "config": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "type": "integer"
        },
        "displayOrder": {
          "type": "number"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/reportingview.GrantAccessTo"
        },
        "id": {
          "type": "integer"
        },
        "isPinned": {
          "type": "boolean"
        },
        "isVisible": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "visibility": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "type",
        "name",
        "displayOrder",
        "isVisible",
        "isPinned",
        "visibility",
        "grantAccessTo",
        "config",
        "createdAt",
        "createdBy"
      ],
      "title": "ReportingView",
      "type": "object"
    },
    "reportingview.Request": {
      "description": "Request is the payload used to create or update a reporting view. The Config\nfield carries the raw settings blob and is passed through unparsed; it is\nvalidated against the per-type JSON Schema in the service layer.\n\nName, DisplayOrder, IsVisible and IsPinned are pointers so create/update\nhandlers can tell an omitted field (\"leave unchanged\" on PATCH, default on\nPOST) apart from a zero value.",
      "properties": {
        "config": {
          "type": "string"
        },
        "displayOrder": {
          "type": "number"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/reportingview.GrantAccessTo"
        },
        "isPinned": {
          "type": "boolean"
        },
        "isVisible": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "visibility": {
          "type": "string"
        }
      },
      "required": [
        "config"
      ],
      "title": "Request",
      "type": "object"
    },
    "reportingview.Response": {
      "description": "Response contains information about a specific reporting view.",
      "properties": {
        "view": {
          "$ref": "#/definitions/reportingview.ReportingView"
        }
      },
      "required": [
        "view"
      ],
      "title": "Response",
      "type": "object"
    },
    "reportingview.ViewsResponse": {
      "description": "ViewsResponse contains information about a group of reporting views.",
      "properties": {
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "views": {
          "items": {
            "$ref": "#/definitions/reportingview.ReportingView"
          },
          "type": "array"
        }
      },
      "required": [
        "views",
        "meta"
      ],
      "title": "ViewsResponse",
      "type": "object"
    },
    "risk.CopyRiskPayload": {
      "description": "CopyRiskPayload contains the projectID you want to copy risks to",
      "properties": {
        "targetProjectID": {
          "type": "integer"
        }
      },
      "required": [
        "targetProjectID"
      ],
      "title": "CopyRiskPayload",
      "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"
        }
      },
      "required": [
        "risk",
        "riskOptions",
        "tags"
      ],
      "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"
        }
      },
      "required": [
        "risk",
        "included"
      ],
      "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.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"
        }
      },
      "required": [
        "risks",
        "meta"
      ],
      "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"
        }
      },
      "required": [
        "risks",
        "meta",
        "included"
      ],
      "title": "RisksResponse",
      "type": "object"
    },
    "search.Response": {
      "description": "Response is the search response.",
      "properties": {
        "included": {
          "properties": {
            "calendarEvents": {
              "additionalProperties": {
                "$ref": "#/definitions/view.LegacyCalendarEvent"
              },
              "type": "object"
            },
            "comments": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Comment"
              },
              "type": "object"
            },
            "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"
            },
            "messages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Message"
              },
              "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"
            },
            "tasklists": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tasklist"
              },
              "type": "object"
            },
            "tasks": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskV205"
              },
              "type": "object"
            },
            "teams": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Team"
              },
              "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"
        },
        "search": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "required": [
        "meta",
        "search",
        "included"
      ],
      "title": "Response",
      "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"
        }
      },
      "required": [
        "customItemSections",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "customItemSection",
        "customItemSectionOptions"
      ],
      "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"
        }
      },
      "required": [
        "customItemSection",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "SkillID",
        "UserIDs"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "userId",
        "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"
        }
      },
      "required": [
        "skillIds"
      ],
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "skill.Request": {
      "description": "Request contains information of a skill to be created or updated.",
      "properties": {
        "skill": {
          "$ref": "#/definitions/skill.Skill"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "skill",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "name"
      ],
      "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"
        }
      },
      "required": [
        "skills",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "stage",
        "stageOptions"
      ],
      "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"
        }
      },
      "required": [
        "stage",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "name",
        "color",
        "showCompletedTasks",
        "displayOrder",
        "positionAfterStage"
      ],
      "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"
        }
      },
      "required": [
        "stages",
        "meta",
        "included"
      ],
      "title": "StagesResponse",
      "type": "object"
    },
    "status.StatusesResponse": {
      "description": "StatusesResponse contains information about a group of statuses.",
      "properties": {
        "included": {
          "properties": {
            "statuses": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Status"
              },
              "type": "object"
            },
            "userEvents": {
              "additionalProperties": {
                "$ref": "#/definitions/view.UserEvents"
              },
              "type": "object"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "userStatuses": {
          "items": {
            "$ref": "#/definitions/view.UserStatus"
          },
          "type": "array"
        }
      },
      "required": [
        "userStatuses",
        "meta",
        "included"
      ],
      "title": "StatusesResponse",
      "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"
        }
      },
      "required": [
        "statuses",
        "meta",
        "included"
      ],
      "title": "TimelineResponse",
      "type": "object"
    },
    "summary.EventResponse": {
      "description": "EventResponse contains counters for events.",
      "properties": {
        "today": {
          "type": "integer"
        },
        "upcoming": {
          "type": "integer"
        }
      },
      "required": [
        "today",
        "upcoming"
      ],
      "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"
        }
      },
      "required": [
        "today",
        "late",
        "complete",
        "upcoming",
        "active"
      ],
      "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"
        }
      },
      "required": [
        "everyone",
        "mine"
      ],
      "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"
        }
      },
      "required": [
        "tasks",
        "stages",
        "milestones",
        "unread",
        "since",
        "events",
        "risks",
        "time",
        "health"
      ],
      "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"
        }
      },
      "required": [
        "everyone",
        "mine",
        "user"
      ],
      "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"
        }
      },
      "required": [
        "tasks",
        "milestones",
        "unread",
        "since",
        "events",
        "risks",
        "time",
        "health"
      ],
      "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"
        }
      },
      "required": [
        "total",
        "open",
        "pending",
        "closed"
      ],
      "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"
        }
      },
      "required": [
        "tasksComplete",
        "tasksCreated",
        "events",
        "dateTime"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color",
        "tasks"
      ],
      "title": "StageDataResponse",
      "type": "object"
    },
    "summary.StageResponse": {
      "description": "StageResponse contains counters for columns.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/summary.StageDataResponse"
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "data"
      ],
      "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"
        }
      },
      "required": [
        "count",
        "archived",
        "completed",
        "active"
      ],
      "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"
        }
      },
      "required": [
        "nodate",
        "today",
        "late",
        "started",
        "complete",
        "upcoming",
        "active"
      ],
      "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"
        }
      },
      "required": [
        "activeMinsEstimated",
        "totalMinsEstimated",
        "totalWithTimeLoggedEstimatedMins",
        "completedMinsEstimated"
      ],
      "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"
        }
      },
      "required": [
        "totalMinsSum",
        "nonBilledMinsSum",
        "billedMinsSum",
        "nonBillableMinsSum",
        "billableMinsSum"
      ],
      "title": "TimeCounterTotalResponse",
      "type": "object"
    },
    "summary.TimeResponse": {
      "description": "TimeResponse contains counters for times' groups.",
      "properties": {
        "all": {
          "$ref": "#/definitions/summary.TimeCounterResponse"
        },
        "mine": {
          "$ref": "#/definitions/summary.TimeCounterResponse"
        }
      },
      "required": [
        "mine",
        "all"
      ],
      "title": "TimeResponse",
      "type": "object"
    },
    "summary.UnreadResponse": {
      "description": "UnreadResponse contains counters for unread objects.",
      "properties": {
        "comments": {
          "type": "integer"
        },
        "messages": {
          "type": "integer"
        }
      },
      "required": [
        "comments",
        "messages"
      ],
      "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"
        }
      },
      "required": [
        "tagIds",
        "tagNames"
      ],
      "title": "BulkDeleteRequest",
      "type": "object"
    },
    "tag.Request": {
      "description": "Request contains information of a tag to be created or updated.",
      "properties": {
        "tag": {
          "$ref": "#/definitions/tag.Tag"
        }
      },
      "required": [
        "tag"
      ],
      "title": "Request",
      "type": "object"
    },
    "tag.Response": {
      "description": "Response contains information about a specific tag.",
      "properties": {
        "tag": {
          "$ref": "#/definitions/view.Tag"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "tags",
        "meta",
        "included"
      ],
      "title": "TagsResponse",
      "type": "object"
    },
    "task.CustomFields": {
      "description": "CustomFields is the custom fields type.",
      "properties": {
        "Values": {
          "items": {
            "$ref": "#/definitions/value.CustomFieldValue"
          },
          "type": "array"
        }
      },
      "required": [
        "Values"
      ],
      "title": "CustomFields",
      "type": "object"
    },
    "task.File": {
      "description": "File stores information about a uploaded file.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id"
      ],
      "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"
        }
      },
      "required": [
        "notify",
        "everyoneMustDo",
        "isTemplate",
        "parseInlineTags",
        "appendAssignees",
        "checkInvalidusers",
        "pushSubtasks",
        "pushDependents"
      ],
      "title": "Options",
      "type": "object"
    },
    "task.PendingFile": {
      "description": "PendingFile stores information about a file uploaded on-the-fly.",
      "properties": {
        "categoryId": {
          "type": "integer"
        },
        "reference": {
          "type": "string"
        }
      },
      "required": [
        "reference"
      ],
      "title": "PendingFile",
      "type": "object"
    },
    "task.Predecessor": {
      "description": "Predecessor stores information about task predecessors.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "Predecessor",
      "type": "object"
    },
    "task.RecurringPreviewEntry": {
      "description": "RecurringPreviewEntry is a single entry within RecurringPreviewResponse.",
      "properties": {
        "date": {
          "type": "string"
        },
        "existingSequence": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object"
        },
        "outOfSequence": {
          "type": "boolean"
        }
      },
      "required": [
        "date",
        "existingSequence",
        "outOfSequence"
      ],
      "title": "RecurringPreviewEntry",
      "type": "object"
    },
    "task.RecurringPreviewResponse": {
      "description": "RecurringPreviewResponse is the response for the GET recurring preview endpoint.",
      "properties": {
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "recurrences": {
          "items": {
            "$ref": "#/definitions/task.RecurringPreviewEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "recurrences",
        "meta"
      ],
      "title": "RecurringPreviewResponse",
      "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"
        }
      },
      "required": [
        "userId",
        "remindAt",
        "type",
        "note",
        "isRelative",
        "relativeNumberDays"
      ],
      "title": "Reminder",
      "type": "object"
    },
    "task.RepeatOptions": {
      "description": "RepeatOptions stores recurring information for the task.",
      "properties": {
        "duration": {
          "type": "integer"
        },
        "editOption": {
          "type": "string"
        },
        "endsAt": {
          "format": "date",
          "type": "string"
        },
        "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"
        }
      },
      "required": [
        "selectedDays",
        "endsAt",
        "frequency",
        "monthlyRepeatType",
        "duration",
        "rrule"
      ],
      "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"
        }
      },
      "required": [
        "task",
        "taskOptions",
        "tags",
        "attachments",
        "attachmentOptions",
        "predecessors",
        "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": {
          "format": "date",
          "type": "string"
        },
        "estimatedMinutes": {
          "type": "integer"
        },
        "grantAccessTo": {
          "$ref": "#/definitions/payload.UserGroups"
        },
        "hasDeskTickets": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "notify": {
          "type": "boolean"
        },
        "originalDueDate": {
          "format": "date",
          "type": "string"
        },
        "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": {
          "format": "date",
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tagIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "taskgroupId": {
          "type": "integer"
        },
        "tasklistId": {
          "type": "integer"
        },
        "templateRoleName": {
          "type": "string"
        },
        "ticketId": {
          "type": "integer"
        }
      },
      "required": [
        "startAt",
        "dueAt",
        "originalDueDate",
        "priority",
        "customFields"
      ],
      "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"
        }
      },
      "required": [
        "task",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "tasks",
        "meta",
        "included"
      ],
      "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"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "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.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklistBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "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"
            },
            "workflowStages": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Stage"
              },
              "type": "object"
            },
            "workflows": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Workflow"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "tasklist": {
          "$ref": "#/definitions/view.Tasklist"
        }
      },
      "required": [
        "tasklist",
        "included"
      ],
      "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"
            },
            "jobRoles": {
              "additionalProperties": {
                "$ref": "#/definitions/view.JobRole"
              },
              "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.ProjectV205"
              },
              "type": "object"
            },
            "tags": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Tag"
              },
              "type": "object"
            },
            "tasklistBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "type": "object"
            },
            "tasklistTaskStats": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TaskStats"
              },
              "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"
            },
            "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"
        }
      },
      "required": [
        "tasklists",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "tasklist",
        "capacity",
        "notifications"
      ],
      "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"
        }
      },
      "required": [
        "tasklistBudget",
        "meta"
      ],
      "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"
        }
      },
      "required": [
        "tasklistBudgets",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "tasklistBudgets",
        "tasklistBudgetsOptions"
      ],
      "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"
        }
      },
      "required": [
        "tasklistBudget",
        "tasklistBudgetOptions"
      ],
      "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"
        }
      },
      "required": [
        "type"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "notificationMedium",
        "capacityThreshold",
        "users",
        "companies",
        "teams"
      ],
      "title": "notification",
      "type": "object"
    },
    "tasklistbudget.tasklist": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "tasklist",
      "type": "object"
    },
    "tasklistbudget.team": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "team",
      "type": "object"
    },
    "tasklistbudget.user": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "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"
        }
      },
      "required": [
        "message",
        "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"
        }
      },
      "required": [
        "timeApproval",
        "included"
      ],
      "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"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "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"
        }
      },
      "required": [
        "timelogs",
        "meta",
        "included"
      ],
      "title": "CompanyTimelogsResponse",
      "type": "object"
    },
    "timelog.Options": {
      "description": "Options are the options of a timelog create or update, the request body's\n\"timelogOptions\". Named rather than inline so a bulk create can extend it\ninstead of restating the same fields at batch level.",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        },
        "logActivity": {
          "type": "boolean"
        },
        "markTaskComplete": {
          "type": "boolean"
        },
        "parseInlineTags": {
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      },
      "title": "Options",
      "type": "object"
    },
    "timelog.ReportResponse": {
      "description": "ReportResponse contains information about a time report.",
      "properties": {
        "included": {
          "properties": {
            "companies": {
              "additionalProperties": {
                "$ref": "#/definitions/view.Company"
              },
              "type": "object"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "type": "object"
            },
            "projects": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectV205"
              },
              "type": "object"
            },
            "tasklistBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.TasklistBudget"
              },
              "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"
        },
        "time": {
          "$ref": "#/definitions/view.TimeReportData"
        }
      },
      "required": [
        "time",
        "meta",
        "included"
      ],
      "title": "ReportResponse",
      "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": {
          "$ref": "#/definitions/timelog.Options"
        }
      },
      "required": [
        "timelog",
        "timelogOptions",
        "tags"
      ],
      "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"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "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"
        }
      },
      "required": [
        "timelog",
        "included"
      ],
      "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": {
          "format": "time",
          "type": "string"
        },
        "userId": {
          "type": "integer"
        },
        "verified": {
          "type": "boolean"
        }
      },
      "required": [
        "taskId",
        "isUtc"
      ],
      "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.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"
            },
            "users": {
              "additionalProperties": {
                "$ref": "#/definitions/view.User"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "timelogs": {
          "items": {
            "$ref": "#/definitions/view.Timelog"
          },
          "type": "array"
        }
      },
      "required": [
        "timelogs",
        "meta"
      ],
      "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"
            },
            "projectBudgets": {
              "additionalProperties": {
                "$ref": "#/definitions/view.ProjectBudget"
              },
              "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"
        }
      },
      "required": [
        "timelogs",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "time-totals",
        "subTasks",
        "financialTotals"
      ],
      "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"
        }
      },
      "required": [
        "canCreate"
      ],
      "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"
        }
      },
      "required": [
        "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"
        }
      },
      "required": [
        "timer",
        "included"
      ],
      "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": "On POST, backdates the timer's DateCreated by the given seconds.\nOn PUT/PATCH, replaces the timer's intervals with a single normalized\ninterval whose duration equals the given seconds.",
          "type": "integer"
        },
        "stopRunningTimers": {
          "type": "boolean"
        },
        "taskId": {
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "taskId"
      ],
      "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"
        }
      },
      "required": [
        "timers",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "timesheets",
        "meta",
        "included"
      ],
      "title": "MyTimesheetsResponse",
      "type": "object"
    },
    "timesheet.MyTimesheetsTotalsResponse": {
      "description": "MyTimesheetsTotalsResponse contains timesheets list, includes and metadata.",
      "properties": {
        "myTimesheetsTotals": {
          "$ref": "#/definitions/view.MyTimesheetsTotals"
        }
      },
      "required": [
        "myTimesheetsTotals"
      ],
      "title": "MyTimesheetsTotalsResponse",
      "type": "object"
    },
    "unbilled.ProjectMetricUnbilledResponse": {
      "description": "ProjectMetricUnbilledResponse contains information about a group of unbilled\ninvoices.",
      "properties": {
        "data": {
          "properties": {
            "value": {
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "data"
      ],
      "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"
        }
      },
      "required": [
        "projectUpdates",
        "meta",
        "included"
      ],
      "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"
        }
      },
      "required": [
        "utilization",
        "dashboardData",
        "included",
        "meta"
      ],
      "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": {
          "description": "The shape depends on the type of the related custom field. One of: string, number, boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "customfieldId",
        "value",
        "countryCode",
        "currencySymbol",
        "urlTextToDisplay"
      ],
      "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": {
          "description": "The shape depends on the type of the related custom field. One of: string, number, boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "id"
      ],
      "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"
        },
        "users": {
          "additionalProperties": {
            "$ref": "#/definitions/view.User"
          },
          "type": "object"
        }
      },
      "title": "ResponseIncluded",
      "type": "object"
    },
    "value.bulkDeleteRequestCompany": {
      "properties": {
        "customfieldCompanyIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customfieldCompanyIds"
      ],
      "title": "bulkDeleteRequestCompany",
      "type": "object"
    },
    "value.bulkDeleteRequestProject": {
      "properties": {
        "customfieldProjectIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customfieldProjectIds"
      ],
      "title": "bulkDeleteRequestProject",
      "type": "object"
    },
    "value.bulkDeleteRequestTask": {
      "properties": {
        "customfieldTaskIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "customfieldTaskIds"
      ],
      "title": "bulkDeleteRequestTask",
      "type": "object"
    },
    "value.bulkUpdateRequestCompany": {
      "properties": {
        "customfieldCompanies": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldCompaniesOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "required": [
        "customfieldCompanies",
        "customfieldCompaniesOptions"
      ],
      "title": "bulkUpdateRequestCompany",
      "type": "object"
    },
    "value.bulkUpdateRequestProject": {
      "properties": {
        "customfieldProjects": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldProjectsOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "required": [
        "customfieldProjects",
        "customfieldProjectsOptions"
      ],
      "title": "bulkUpdateRequestProject",
      "type": "object"
    },
    "value.bulkUpdateRequestTask": {
      "properties": {
        "customfieldTasks": {
          "items": {
            "$ref": "#/definitions/value.EditCustomFieldValue"
          },
          "type": "array"
        },
        "customfieldTasksOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "required": [
        "customfieldTasks",
        "customfieldTasksOptions"
      ],
      "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"
        }
      },
      "required": [
        "customfieldCompany",
        "customfieldCompanyOptions"
      ],
      "title": "requestCompany",
      "type": "object"
    },
    "value.requestProject": {
      "properties": {
        "customfieldProject": {
          "$ref": "#/definitions/value.CustomFieldValue"
        },
        "customfieldProjectOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "required": [
        "customfieldProject",
        "customfieldProjectOptions"
      ],
      "title": "requestProject",
      "type": "object"
    },
    "value.requestTask": {
      "properties": {
        "customfieldTask": {
          "$ref": "#/definitions/value.CustomFieldValue"
        },
        "customfieldTaskOptions": {
          "$ref": "#/definitions/value.options"
        }
      },
      "required": [
        "customfieldTask",
        "customfieldTaskOptions"
      ],
      "title": "requestTask",
      "type": "object"
    },
    "value.responseCompany": {
      "properties": {
        "customfieldCompany": {
          "$ref": "#/definitions/view.CustomFieldValueCompany"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customfieldCompany"
      ],
      "title": "responseCompany",
      "type": "object"
    },
    "value.responseProject": {
      "properties": {
        "customfieldProject": {
          "$ref": "#/definitions/view.CustomFieldValueProject"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customfieldProject"
      ],
      "title": "responseProject",
      "type": "object"
    },
    "value.responseTask": {
      "properties": {
        "customfieldTask": {
          "$ref": "#/definitions/view.CustomFieldValueTask"
        },
        "included": {
          "$ref": "#/definitions/value.ResponseIncluded"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        }
      },
      "required": [
        "customfieldTask"
      ],
      "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"
        }
      },
      "required": [
        "customfieldCompanies"
      ],
      "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"
        }
      },
      "required": [
        "customfieldProjects"
      ],
      "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"
        }
      },
      "required": [
        "customfieldTasks"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "itemType",
        "latestType",
        "user",
        "datetime"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "user",
        "decision",
        "role",
        "isExternal"
      ],
      "title": "Assignee",
      "type": "object"
    },
    "view.Audit": {
      "description": "Audit represents the changes of a field.",
      "properties": {
        "after": {
          "type": "any"
        },
        "before": {
          "type": "any"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "before",
        "after",
        "field"
      ],
      "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"
        }
      },
      "required": [
        "x",
        "y"
      ],
      "title": "Banner",
      "type": "object"
    },
    "view.BillableInfo": {
      "description": "BillableInfo contains all the information related to the billable rates.",
      "properties": {
        "rate": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "rate",
        "total"
      ],
      "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"
        }
      },
      "required": [
        "totals"
      ],
      "title": "Breakdown",
      "type": "object"
    },
    "view.BudgetAllocation": {
      "description": "BudgetAllocation is a budget a timelog is attached to, and how many\nminutes count toward it. Included only when budgetAllocations=true.",
      "properties": {
        "allocatedMinutes": {
          "type": "integer"
        },
        "budgetId": {
          "type": "integer"
        },
        "source": {
          "description": "\"auto\" | \"manual\"",
          "type": "string"
        }
      },
      "required": [
        "budgetId",
        "source"
      ],
      "title": "BudgetAllocation",
      "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"
        }
      },
      "required": [
        "companyId",
        "budgetStatus",
        "budgetAmountTime",
        "budgetUsedTime",
        "budgetRemainingTime",
        "billableTime",
        "nonBillableTime",
        "budgetAmountFinancial",
        "budgetRemainingFinancial",
        "budgetUsedFinancial",
        "budgetUsedPercentage",
        "billableTotal",
        "revenueTimeBased",
        "revenueExpenses",
        "childRowsCount"
      ],
      "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"
        }
      },
      "required": [
        "companyCount",
        "projectCount",
        "projectBudgetCount",
        "completedBudgetCount",
        "upcomingBudgetCount",
        "activeBudgetCount",
        "budgetAmountTime",
        "budgetUsedTime",
        "budgetRemainingTime",
        "billableTime",
        "nonBillableTime",
        "budgetAmountFinancial",
        "budgetRemainingFinancial",
        "budgetUsedFinancial",
        "budgetUsedPercentage",
        "billableTotal",
        "revenueTimeBased",
        "revenueExpenses",
        "budgetAmountTimeAverage",
        "budgetUsedTimeAverage",
        "budgetRemainingTimeAverage",
        "billableTimeAverage",
        "nonBillableTimeAverage",
        "budgetAmountFinancialAverage",
        "budgetRemainingFinancialAverage",
        "budgetUsedFinancialAverage",
        "budgetUsedPercentageAverage",
        "billableTotalAverage",
        "revenueTimeBasedAverage",
        "revenueExpensesAverage"
      ],
      "title": "BudgetReportTotals",
      "type": "object"
    },
    "view.BudgetSummary": {
      "description": "BudgetSummary represents a company budget summary",
      "properties": {
        "totalCapacity": {
          "type": "integer"
        },
        "totalCapacityUsed": {
          "type": "integer"
        }
      },
      "required": [
        "totalCapacity",
        "totalCapacityUsed"
      ],
      "title": "BudgetSummary",
      "type": "object"
    },
    "view.BulkFailure": {
      "description": "BulkFailure describes one input row of a bulk request that could not be processed, so a\nbulk endpoint can create the valid rows and still report the failures. Index is the row's\nposition in the request; resource-specific identifiers (if useful) go in each error's Meta.",
      "properties": {
        "errors": {
          "items": {
            "$ref": "#/definitions/view.Error"
          },
          "type": "array"
        },
        "index": {
          "type": "integer"
        }
      },
      "required": [
        "index",
        "errors"
      ],
      "title": "BulkFailure",
      "type": "object"
    },
    "view.Calendar": {
      "description": "Calendar contains all the information returned from a calendar.",
      "properties": {
        "canViewPlanning": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "includeSingleAttendeeEvents": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "primary",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "user",
        "status",
        "canEdit",
        "isSelf",
        "reminders"
      ],
      "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"
        }
      },
      "required": [
        "method",
        "minute"
      ],
      "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"
        },
        "excludeFromCapacity": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "id",
        "iCalUID",
        "status",
        "createdAt",
        "createdBy",
        "organizer",
        "eventCreator",
        "start",
        "end",
        "allDay",
        "attendees",
        "attendeesOmitted",
        "guestsCanInviteOthers",
        "guestsCanModify",
        "guestsCanSeeOtherGuests",
        "calOwnerCanEdit",
        "excludeFromCapacity"
      ],
      "title": "CalendarEvent",
      "type": "object"
    },
    "view.CalendarEventDate": {
      "description": "CalendarEventDate is a date in the CalendarEvent.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "required": [
        "dateTime",
        "timeZone"
      ],
      "title": "CalendarEventDate",
      "type": "object"
    },
    "view.CalendarHolidayDate": {
      "description": "CalendarHolidayDate is a date in the CalendarHolidayEvent.",
      "properties": {
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      },
      "required": [
        "dateTime",
        "timeZone"
      ],
      "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"
        },
        "excludeFromCapacity": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "start",
        "end"
      ],
      "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"
        }
      },
      "required": [
        "categorizedItems",
        "uncategorizedItems"
      ],
      "title": "CategoryTotals",
      "type": "object"
    },
    "view.ClientPortal": {
      "description": "ClientPortal contains all the information returned from a client portal.\n\nThe ticket settings decide what a portal user may do with the tickets they\nraise. Each field covered carries two grants rather than one: whether the user\nmay set it on the tickets they create and reply to, and whether they are shown\nit back. The two are separate permissions - classifying your own ticket and\nreading the classification an agent put on it are not the same thing, and a\nportal can allow either, both or neither.",
      "properties": {
        "canCC": {
          "description": "CanCC allows additional addresses to be CC'd on the ticket.",
          "type": "boolean"
        },
        "canCloseTicket": {
          "description": "CanCloseTicket allows a reply to solve the ticket. The status itself is\nalways read back - a portal user who cannot close their ticket is still\ntold whether it is open.",
          "type": "boolean"
        },
        "canSeeAgent": {
          "description": "CanSeeAgent allows the assigned agent to be read back. There is no\nmatching set flag: a client portal user never assigns a ticket.",
          "type": "boolean"
        },
        "canSeeCC": {
          "description": "CanSeeCC allows the addresses CC'd on the ticket to be read back.",
          "type": "boolean"
        },
        "canSeeCustomFields": {
          "description": "CanSeeCustomFields allows the ticket's custom field values to be read back.",
          "type": "boolean"
        },
        "canSeePriority": {
          "description": "CanSeePriority allows the ticket's priority to be read back.",
          "type": "boolean"
        },
        "canSeeTags": {
          "description": "CanSeeTags allows the ticket's tags to be read back.",
          "type": "boolean"
        },
        "canSeeType": {
          "description": "CanSeeType allows the ticket's type to be read back.",
          "type": "boolean"
        },
        "canSetCustomFields": {
          "description": "CanSetCustomFields allows custom field values to be submitted.",
          "type": "boolean"
        },
        "canSetPriority": {
          "description": "CanSetPriority allows the ticket priority to be set on create.",
          "type": "boolean"
        },
        "canSetTags": {
          "description": "CanSetTags allows tags to be applied to the ticket.",
          "type": "boolean"
        },
        "canSetType": {
          "description": "CanSetType allows the ticket type to be set on create.",
          "type": "boolean"
        },
        "clientUsers": {
          "description": "ClientUsers are the client users allowed to view the portal, as\nreferences into the sideloaded users. Only the clients added to the portal\nin their own right are listed: a client who reaches it through their\ncompany is not one of them, which is the same set the portal's users\nsub-resource returns.\n\nIt is filled in only when the clientUsers sideload is asked for. A read\nthat did not ask returns it empty, which says nothing about whether the\nportal has client users.",
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedByUser": {
          "type": "integer"
        },
        "helpDocs": {
          "description": "HelpDocs are the help doc sites the portal surfaces, as bare references.\nHelp docs belong to another service with its own database, so there is\nnothing to sideload here and nothing beyond the identifier to return: the\ncaller resolves them against that service.",
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "helpDocsEnabled": {
          "description": "HelpDocsEnabled reports whether the portal shows its help docs section,\nand whether its helpdocs endpoints answer at all: with it false they are\nforbidden. HelpDocs is still returned here either way, so this is the one\nplace a caller can see what a switched-off portal would surface.",
          "type": "boolean"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "name",
        "createdByUser",
        "createdAt",
        "canSetPriority",
        "canSeePriority",
        "canSetType",
        "canSeeType",
        "canSetTags",
        "canSeeTags",
        "canSetCustomFields",
        "canSeeCustomFields",
        "canCC",
        "canSeeCC",
        "canSeeAgent",
        "canCloseTicket",
        "helpDocsEnabled",
        "helpDocs",
        "clientUsers"
      ],
      "title": "ClientPortal",
      "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"
        }
      },
      "required": [
        "rate",
        "role",
        "createdByUser",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "objectType",
        "objectId",
        "object",
        "title",
        "project"
      ],
      "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"
        },
        "clientPortals": {
          "description": "ClientPortals are the client portals the company is linked to, as\nreferences into the sideloaded portals. It is filled in only when the\nclientPortals sideload is asked for, so an empty list on a read that did\nnot ask says nothing about whether the company reaches a portal.",
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "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"
        }
      },
      "required": [
        "id",
        "name",
        "logoUrl",
        "addressOne",
        "addressTwo",
        "city",
        "state",
        "zip",
        "countryCode",
        "emailOne",
        "emailTwo",
        "emailThree",
        "website",
        "cid",
        "phone",
        "fax",
        "canSeePrivate",
        "isOwner",
        "companyNameUrl",
        "companyDomains",
        "tags",
        "status",
        "clientPortals"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "companyId",
        "domain",
        "createdByUser",
        "createdAt",
        "state"
      ],
      "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"
        }
      },
      "required": [
        "projectCount",
        "taskCount",
        "taskCompleteCount",
        "unreadEmailCount"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "company",
        "health",
        "active"
      ],
      "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"
        },
        "displayOrder": {
          "type": "number"
        },
        "id": {
          "type": "integer"
        },
        "isPinned": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "id",
        "ownerId",
        "name",
        "description",
        "type",
        "isVisible",
        "isPinned",
        "displayOrder",
        "widgets",
        "createdByUser",
        "createdAt"
      ],
      "title": "Container",
      "type": "object"
    },
    "view.ContainerBinding": {
      "description": "ContainerBinding is the binding details included in a container response.",
      "properties": {
        "entity": {
          "type": "string"
        },
        "entityId": {
          "type": "integer"
        }
      },
      "required": [
        "entity",
        "entityId"
      ],
      "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"
        },
        "posY": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "width": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "type",
        "posX",
        "posY",
        "width",
        "height",
        "config",
        "createdByUser",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "version",
        "state",
        "banner",
        "logo"
      ],
      "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"
        }
      },
      "required": [
        "rate",
        "total"
      ],
      "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"
        }
      },
      "required": [
        "code",
        "country",
        "eu",
        "vatPercent"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "code"
      ],
      "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": {
          "properties": {
            "choices": {
              "description": "Set for the dropdown, multiselect and status types.",
              "items": {
                "properties": {
                  "color": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "required": [
                  "value",
                  "color"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "color": {
              "description": "Set for the rating type.",
              "type": "string"
            },
            "decimals": {
              "description": "Set for the number decimal type.",
              "type": "integer"
            },
            "icon": {
              "description": "Set for the rating type.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectId": {
          "type": "integer"
        },
        "required": {
          "type": "boolean"
        },
        "type": {
          "enum": [
            "text-short",
            "text-long",
            "number-decimal",
            "number-integer",
            "financial",
            "dropdown",
            "multiselect",
            "checkbox",
            "percentage",
            "url",
            "tw-url",
            "user",
            "rating",
            "date",
            "phone",
            "email",
            "status"
          ],
          "type": "string"
        },
        "unitId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "updatedByUserId": {
          "type": "integer"
        },
        "visibilities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "entity",
        "name",
        "description",
        "type",
        "options",
        "visibilities",
        "isPrivate",
        "required",
        "createdAt",
        "createdByUserId",
        "createdBy",
        "deleted"
      ],
      "title": "CustomField",
      "type": "object"
    },
    "view.CustomFieldReportData": {
      "description": "CustomFieldReportData represents a custom field report data",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "projectId": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "unitId": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "name",
        "type"
      ],
      "title": "CustomFieldReportData",
      "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": {
          "description": "The shape depends on the type of the related custom field. One of: string, number, boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "companyId",
        "company"
      ],
      "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": {
          "description": "The shape depends on the type of the related custom field. One of: string, number, boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "projectId",
        "project"
      ],
      "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": {
          "description": "The shape depends on the type of the related custom field. One of: string, number, boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "taskId",
        "task"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "displayName",
        "labelSingular",
        "labelPlural",
        "state",
        "relations",
        "fields",
        "views",
        "sections"
      ],
      "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"
        },
        "formula": {
          "type": "string"
        },
        "formulaUnit": {
          "type": "string"
        },
        "formulaValid": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "id",
        "displayName",
        "type",
        "twId",
        "state",
        "displayOrder"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "label",
        "twId",
        "color",
        "displayOrder",
        "isDefault"
      ],
      "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"
        },
        "meta": {
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "parentId": {
          "type": "integer"
        },
        "section": {
          "$ref": "#/definitions/view.Relationship"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "id",
        "name",
        "state",
        "displayOrder",
        "fieldValues"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "displayName",
        "state",
        "displayOrder"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "viewTypeId",
        "displayName",
        "displayOrder",
        "state"
      ],
      "title": "CustomItemView",
      "type": "object"
    },
    "view.CustomReport": {
      "description": "CustomReport stores all options of a custom report.",
      "properties": {
        "advancedFilter": {
          "items": {
            "type": "any"
          },
          "type": "array"
        },
        "baseType": {
          "type": "string"
        },
        "charts": {
          "items": {
            "$ref": "#/definitions/view.CustomReportChart"
          },
          "type": "array"
        },
        "columns": {
          "items": {
            "$ref": "#/definitions/view.CustomReportSelectedColumn"
          },
          "type": "array"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customfieldFilters": {
          "items": {
            "$ref": "#/definitions/view.CustomReportSelectedCustomFieldFilter"
          },
          "type": "array"
        },
        "customfields": {
          "items": {
            "$ref": "#/definitions/view.CustomReportSelectedCustomField"
          },
          "type": "array"
        },
        "datePeriod": {
          "type": "integer"
        },
        "deletedAt": {
          "type": "string"
        },
        "deletedByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "description": {
          "type": "string"
        },
        "endAt": {
          "format": "date",
          "type": "string"
        },
        "filters": {
          "items": {
            "$ref": "#/definitions/view.CustomReportSelectedFilter"
          },
          "type": "array"
        },
        "grantAccessTo": {
          "properties": {
            "companies": {
              "items": {
                "$ref": "#/definitions/view.CustomReportCompany"
              },
              "type": "array"
            },
            "teams": {
              "items": {
                "$ref": "#/definitions/view.CustomReportTeam"
              },
              "type": "array"
            },
            "users": {
              "items": {
                "$ref": "#/definitions/view.CustomReportUser"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "id": {
          "type": "integer"
        },
        "lastGeneratedAt": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "ownedByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "perspectiveConfig": {
          "type": "string"
        },
        "sortByPosition": {
          "type": "integer"
        },
        "sortOrder": {
          "type": "string"
        },
        "starred": {
          "type": "boolean"
        },
        "startAt": {
          "format": "date",
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "summary": {
          "type": "boolean"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "id",
        "baseType",
        "status",
        "name",
        "description",
        "startAt",
        "endAt",
        "summary",
        "ownedByUser",
        "createdAt",
        "createdByUser",
        "grantAccessTo",
        "columns",
        "customfields",
        "filters",
        "customfieldFilters",
        "sortByPosition",
        "sortOrder",
        "charts",
        "starred"
      ],
      "title": "CustomReport",
      "type": "object"
    },
    "view.CustomReportBuilder": {
      "description": "CustomReportBuilder represents a custom report builder data",
      "properties": {
        "baseType": {
          "type": "string"
        },
        "charts": {
          "items": {
            "$ref": "#/definitions/view.CustomReportChart"
          },
          "type": "array"
        },
        "columns": {
          "items": {
            "$ref": "#/definitions/view.CustomReportColumn"
          },
          "type": "array"
        },
        "customfields": {
          "items": {
            "$ref": "#/definitions/view.CustomFieldReportData"
          },
          "type": "array"
        },
        "filters": {
          "items": {
            "$ref": "#/definitions/view.CustomReportFilter"
          },
          "type": "array"
        },
        "summary": {
          "type": "boolean"
        }
      },
      "required": [
        "baseType",
        "columns",
        "customfields",
        "filters",
        "charts",
        "summary"
      ],
      "title": "CustomReportBuilder",
      "type": "object"
    },
    "view.CustomReportChart": {
      "description": "CustomReportChart represents a custom report chart",
      "properties": {
        "chartId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "order": {
          "type": "integer"
        },
        "reportId": {
          "type": "integer"
        },
        "series": {
          "items": {
            "$ref": "#/definitions/view.CustomReportChartSeries"
          },
          "type": "array"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "type": "integer"
        },
        "visible": {
          "type": "boolean"
        }
      },
      "required": [
        "chartId",
        "reportId",
        "name",
        "visible",
        "order",
        "createdAt",
        "createdByUser",
        "updatedAt",
        "updatedByUser",
        "series"
      ],
      "title": "CustomReportChart",
      "type": "object"
    },
    "view.CustomReportChartSeries": {
      "description": "CustomReportChartSeries represents a custom report chart series",
      "properties": {
        "chartId": {
          "type": "string"
        },
        "color": {
          "type": "string"
        },
        "columnId": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "integer"
        },
        "reportId": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "chartId",
        "reportId",
        "position",
        "name",
        "type",
        "columnId"
      ],
      "title": "CustomReportChartSeries",
      "type": "object"
    },
    "view.CustomReportColumn": {
      "description": "CustomReportColumn represents a custom report column",
      "properties": {
        "category": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "category"
      ],
      "title": "CustomReportColumn",
      "type": "object"
    },
    "view.CustomReportCompany": {
      "description": "CustomReportCompany represents the company allowed to access the custom report.",
      "properties": {
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "company",
        "createdAt",
        "createdByUser"
      ],
      "title": "CustomReportCompany",
      "type": "object"
    },
    "view.CustomReportData": {
      "description": "CustomReportData represents the custom report to be encoded as JSON.",
      "properties": {
        "CustomReportID": {
          "type": "integer"
        },
        "Items": {
          "items": {
            "$ref": "#/definitions/view.CustomReportDataItem"
          },
          "type": "array"
        },
        "Summary": {
          "items": {
            "$ref": "#/definitions/view.CustomReportDataItem"
          },
          "type": "array"
        }
      },
      "required": [
        "CustomReportID",
        "Items",
        "Summary"
      ],
      "title": "CustomReportData",
      "type": "object"
    },
    "view.CustomReportDataColumn": {
      "description": "CustomReportDataColumn represents a column in the custom report.",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "title": "CustomReportDataColumn",
      "type": "object"
    },
    "view.CustomReportDataItem": {
      "description": "CustomReportDataItem represents a single item from the custom report.",
      "properties": {
        "Columns": {
          "items": {
            "$ref": "#/definitions/view.CustomReportDataColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "Columns"
      ],
      "title": "CustomReportDataItem",
      "type": "object"
    },
    "view.CustomReportFilter": {
      "description": "CustomReportFilter represents a custom report filter",
      "properties": {
        "parameterName": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "parameterName"
      ],
      "title": "CustomReportFilter",
      "type": "object"
    },
    "view.CustomReportSelectedColumn": {
      "description": "CustomReportSelectedColumn contains the selected column, and the order that\nit should appear.",
      "properties": {
        "name": {
          "type": "string"
        },
        "position": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "position"
      ],
      "title": "CustomReportSelectedColumn",
      "type": "object"
    },
    "view.CustomReportSelectedCustomField": {
      "description": "CustomReportSelectedCustomField contains the selected custom field, and the\norder that it should appear.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "position": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "position"
      ],
      "title": "CustomReportSelectedCustomField",
      "type": "object"
    },
    "view.CustomReportSelectedCustomFieldFilter": {
      "description": "CustomReportSelectedCustomFieldFilter contains information of the selected\ncustom field filter.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "operator": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "operator",
        "value"
      ],
      "title": "CustomReportSelectedCustomFieldFilter",
      "type": "object"
    },
    "view.CustomReportSelectedFilter": {
      "description": "CustomReportSelectedFilter contains information of the selected filter and\nrelated value.",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "description": "The shape depends on the filter named in name. One of: integer[], boolean, string[].",
          "type": "any"
        }
      },
      "required": [
        "name",
        "value",
        "type"
      ],
      "title": "CustomReportSelectedFilter",
      "type": "object"
    },
    "view.CustomReportTeam": {
      "description": "CustomReportTeam represents the team allowed to access the custom report.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "team": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "team",
        "createdAt",
        "createdByUser"
      ],
      "title": "CustomReportTeam",
      "type": "object"
    },
    "view.CustomReportUser": {
      "description": "CustomReportUser represents the user allowed to access the custom report.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "starred": {
          "type": "boolean"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedByUser": {
          "$ref": "#/definitions/view.Relationship"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "user",
        "starred",
        "createdAt",
        "createdByUser"
      ],
      "title": "CustomReportUser",
      "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"
        }
      },
      "required": [
        "totalWorkingMinutes",
        "availableMinutes",
        "unavailableMinutes",
        "billableUtilization",
        "estimatedUtilization",
        "estimatedBillableUtilization"
      ],
      "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"
        }
      },
      "required": [
        "userId",
        "dates"
      ],
      "title": "DataSummary",
      "type": "object"
    },
    "view.DateRange": {
      "description": "DateRange represents an inclusive start/end date range.",
      "properties": {
        "endDate": {
          "type": "string"
        },
        "startDate": {
          "type": "string"
        }
      },
      "required": [
        "startDate",
        "endDate"
      ],
      "title": "DateRange",
      "type": "object"
    },
    "view.EffectiveUserRate": {
      "description": "EffectiveUserRate is the users effective rate",
      "properties": {
        "effectiveRate": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "user"
      ],
      "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"
        }
      },
      "required": [
        "errors"
      ],
      "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"
        },
        "source": {
          "type": "string"
        },
        "toCurrency": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "fromCurrency",
        "toCurrency",
        "rate",
        "date"
      ],
      "title": "ExchangeRate",
      "type": "object"
    },
    "view.ExpenseCategory": {
      "description": "ExpenseCategory contains all the information returned from a expensecategory.",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "id",
        "name",
        "createdBy",
        "createdAt"
      ],
      "title": "ExpenseCategory",
      "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"
        }
      },
      "required": [
        "key",
        "isBeta",
        "source"
      ],
      "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"
        }
      },
      "required": [
        "uploadedBy"
      ],
      "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"
        }
      },
      "required": [
        "totalCost",
        "totalCostBilled",
        "totalCostBillable"
      ],
      "title": "FinancialTotals",
      "type": "object"
    },
    "view.Form": {
      "description": "Form contains all the information returned from a form.",
      "properties": {
        "addSubmitterAsFollower": {
          "type": "boolean"
        },
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/view.Content"
        },
        "createAsSubmitter": {
          "type": "boolean"
        },
        "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"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "isShared": {
          "type": "boolean"
        },
        "notifyTaskAssignees": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "responseEmailFieldId": {
          "type": "string"
        },
        "restrictToProjectUsers": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "id",
        "promptAdditionalSubmissions",
        "isShared",
        "isPrivate",
        "restrictToProjectUsers",
        "createAsSubmitter",
        "addSubmitterAsFollower",
        "state",
        "totalSubmissions",
        "token",
        "content"
      ],
      "title": "Form",
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "displayOrder",
        "isPublished",
        "isActive"
      ],
      "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"
        }
      },
      "required": [
        "userId",
        "projectId",
        "canAccessBox",
        "canAccessDropbox",
        "canAccessGoogleDocs",
        "canAccessOneDrive",
        "canAccessOneDriveBusiness",
        "canAccessSharePoint"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "number",
        "PONumber",
        "description",
        "createdByUserId",
        "dateCreated",
        "updatedByUserId",
        "dateUpdated",
        "status",
        "pricing",
        "totalTime",
        "totalTimeDecimal",
        "projectId",
        "exportedTo",
        "projectName",
        "companyId",
        "lineItems"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "createdByUserId",
        "date",
        "datetime",
        "createdByUserFirstName",
        "cost",
        "description",
        "lineItemDescription",
        "createdByUserLastName",
        "name",
        "assigneeDescription",
        "dateDescription",
        "count",
        "isSummarized",
        "summarizationKey"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "placeholderCount",
        "createdByUser",
        "createdAt",
        "isActive"
      ],
      "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"
        }
      },
      "required": [
        "jobRoleId",
        "jobRole",
        "data"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "title",
        "startDate",
        "endDate",
        "privacyType",
        "allDay",
        "location",
        "showAsBusy",
        "attendeesCanEdit",
        "projectUsersCanEdit",
        "monthlyRepeatType",
        "deleted",
        "ownerUserId",
        "ownedBy",
        "attendingUserIds",
        "attendingUsers"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color",
        "unavailable"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "startDate",
        "endDate",
        "allDay",
        "title",
        "durationMinutes",
        "hoursPerDay",
        "attendingUsers",
        "ownedBy",
        "deleted"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "description",
        "userId",
        "taskName",
        "taskDescription",
        "hours",
        "minutes",
        "totalMinutes",
        "userLastName",
        "taskListName",
        "userFirstName",
        "userFullName",
        "dateLoggedUTC",
        "decimalHours",
        "date",
        "billableTotal",
        "billable",
        "dateDescription",
        "lineItemTitle",
        "lineItemDescription",
        "assigneeDescription",
        "isSummarized",
        "summarizationKey"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "width",
        "height",
        "isPrivate",
        "projectId",
        "project",
        "forceNewWindow",
        "deleted",
        "createdBy",
        "tags"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "updatedAt",
        "grantAccessTo"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "title",
        "status",
        "projectId",
        "project",
        "tags",
        "replyId",
        "replyStatus"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "status",
        "body",
        "createdAt",
        "author",
        "message",
        "attachments",
        "peopleNotifiedCount"
      ],
      "title": "MessageReply",
      "type": "object"
    },
    "view.MessageReplyMeta": {
      "description": "MessageReplyMeta is the message reply meta.",
      "properties": {
        "isRead": {
          "type": "boolean"
        },
        "permissions": {
          "properties": {
            "canEdit": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "isRead",
        "permissions"
      ],
      "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"
        }
      },
      "required": [
        "pageOffset",
        "pageSize",
        "count",
        "hasMore"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "descriptionHTML",
        "deadline",
        "completed",
        "projectId",
        "project",
        "createdOn",
        "lastChangedOn",
        "creatorUserId",
        "createdBy",
        "reminder",
        "private",
        "status",
        "userFollowingComments",
        "userFollowingChanges",
        "userFollowingComplete",
        "isDeleted",
        "canEdit",
        "canComplete"
      ],
      "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"
        }
      },
      "required": [
        "currency"
      ],
      "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"
        },
        "isPinned": {
          "type": "boolean"
        },
        "total": {
          "type": "integer"
        }
      },
      "required": [
        "entity",
        "dates",
        "total",
        "isCustomRow",
        "isPinned"
      ],
      "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"
        }
      },
      "required": [
        "totalMinutes",
        "timelogs"
      ],
      "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"
        }
      },
      "required": [
        "dailyTotals",
        "total"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "type",
        "isPrivate",
        "locked",
        "lockdownId",
        "secureContent",
        "isFullWidth",
        "projectId",
        "project",
        "deleted",
        "commentFollowers",
        "changeFollowers",
        "userFollowingChanges",
        "userFollowingComments",
        "tagIds",
        "tags"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color",
        "projectId",
        "project",
        "elementsCount"
      ],
      "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"
        }
      },
      "required": [
        "versionId",
        "notebookId",
        "notebook",
        "versionNumber"
      ],
      "title": "NotebookVersion",
      "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"
        }
      },
      "required": [
        "rate",
        "total",
        "exchangeRate"
      ],
      "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"
        }
      },
      "required": [
        "planName",
        "id",
        "type",
        "code",
        "features"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "columnId",
        "column",
        "projectId",
        "project",
        "boardId",
        "board"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "key",
        "value"
      ],
      "title": "PricePlanFeature",
      "type": "object"
    },
    "view.ProfitDetails": {
      "description": "ProfitDetails represents the totals.",
      "properties": {
        "billable": {
          "type": "number"
        },
        "billableTime": {
          "type": "integer"
        },
        "billableTimeFinancial": {
          "type": "number"
        },
        "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"
        },
        "revenueTimeBased": {
          "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"
        },
        "archivedAt": {
          "description": "when the project was archived. null unless the project is archived (inactive).",
          "type": "string"
        },
        "archivedBy": {
          "description": "the user who archived the project. null unless the project is archived (inactive).",
          "type": "integer"
        },
        "budgetCount": {
          "description": "how many active budgets the project holds. the project reports one of them\nbelow, and it always resolves in included.projectBudgets. when this is\ngreater than 1 the others are not reported here, so that a page of\nprojects does not carry an unbounded sideload: GET /budgets?projectIds=\nreturns them all.",
          "type": "integer"
        },
        "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"
        },
        "deletedAt": {
          "description": "deletedAt/deletedBy and archivedAt/archivedBy are backed by the same two\ncolumns, split by status, and exposed separately so the storage can be\nuntangled later without an API change. only the pair matching the project's\nstatus is populated.\n\nwhen the project was deleted. null unless the project is deleted.",
          "type": "string"
        },
        "deletedBy": {
          "description": "the user who deleted the project. null unless the project is deleted.",
          "type": "integer"
        },
        "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": {
          "description": "the project status. inactive is the archived state.",
          "enum": [
            "active",
            "inactive",
            "deleted"
          ],
          "type": "string"
        },
        "subStatus": {
          "description": "the project chronogram sub-status, derived from completion and dates",
          "enum": [
            "current",
            "upcoming",
            "late",
            "completed"
          ],
          "type": "string"
        },
        "tags": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "tasksStartPage": {
          "type": "string"
        },
        "timeBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timelogRequiresTask": {
          "type": "boolean"
        },
        "type": {
          "description": "the project type",
          "enum": [
            "normal",
            "tasklists-template",
            "projects-template",
            "personal",
            "tentative"
          ],
          "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"
        }
      },
      "required": [
        "id",
        "name",
        "type",
        "status",
        "subStatus",
        "company",
        "tags",
        "budgetCount",
        "defaultPrivacy",
        "activePages",
        "directFileUploadsEnabled",
        "harvestTimersEnabled",
        "integrations",
        "isOnBoardingProject",
        "isSampleProject",
        "logo",
        "notifyEveryone",
        "allowNotifyAnyone",
        "notifyCommentIncludeCreator",
        "notifyTaskAssignee",
        "overviewStartPage",
        "privacyEnabled",
        "replyByEmailEnabled",
        "showAnnouncement",
        "announcement",
        "skipWeekends",
        "startPage",
        "tasksStartPage",
        "customfieldValues",
        "isBillable",
        "timelogRequiresTask"
      ],
      "title": "Project",
      "type": "object"
    },
    "view.ProjectBudget": {
      "description": "ProjectBudget contains all the information returned from a budget.",
      "properties": {
        "PONumber": {
          "type": "string"
        },
        "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"
        },
        "name": {
          "type": "string"
        },
        "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"
        }
      },
      "required": [
        "id",
        "projectId",
        "project",
        "type",
        "status",
        "capacityUsed",
        "capacity",
        "baselineCapacity",
        "carryCapacity",
        "isRepeating",
        "sequenceNumber",
        "timelogType",
        "isRetainer",
        "carryOverspend",
        "carryUnderspend",
        "notificationIds",
        "notifications",
        "createdByUserId",
        "createdBy",
        "dateCreated",
        "createdAt",
        "financialDetailsHidden"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "userIds",
        "users",
        "teamIds",
        "teams",
        "companyIds",
        "companies",
        "notificationMedium",
        "capacityThreshold"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "color",
        "count"
      ],
      "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"
        }
      },
      "required": [
        "total",
        "active",
        "current",
        "late",
        "completed",
        "archived",
        "upcoming"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "project",
        "projectCode",
        "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"
        }
      },
      "required": [
        "tasks",
        "messages",
        "notebooks",
        "links",
        "files"
      ],
      "title": "ProjectEmails",
      "type": "object"
    },
    "view.ProjectExpense": {
      "description": "ProjectExpense contains all the information returned from an expense.",
      "properties": {
        "billableAmount": {
          "type": "number"
        },
        "budget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "category": {
          "type": "string"
        },
        "costAmount": {
          "type": "number"
        },
        "createdAt": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "customCategory": {
          "$ref": "#/definitions/view.Relationship"
        },
        "date": {
          "format": "date",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "expenseDescription": {
          "type": "string"
        },
        "files": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "invoice": {
          "$ref": "#/definitions/view.Relationship"
        },
        "isBillable": {
          "type": "boolean"
        },
        "markup": {
          "type": "number"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "projectBillingExpense": {
          "$ref": "#/definitions/view.Relationship"
        },
        "title": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/view.Relationship"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "id",
        "title",
        "description",
        "costAmount",
        "isBillable",
        "date",
        "project",
        "user",
        "createdBy",
        "createdAt",
        "updatedBy",
        "updatedAt",
        "files"
      ],
      "title": "ProjectExpense",
      "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"
        }
      },
      "required": [
        "uploadedBy",
        "uploadedByUserID"
      ],
      "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"
        }
      },
      "required": [
        "tasks",
        "billing",
        "events",
        "milestones"
      ],
      "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"
        }
      },
      "required": [
        "deadlinesFound",
        "suggestedStartDate",
        "suggestedEndDate"
      ],
      "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"
        }
      },
      "required": [
        "noDate",
        "late",
        "upcoming",
        "complete",
        "active",
        "count",
        "today",
        "archived",
        "starred",
        "current"
      ],
      "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"
        }
      },
      "required": [
        "capacity",
        "capacityMinutes",
        "project",
        "tasks",
        "milestones"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "text",
        "health",
        "healthLabel",
        "color",
        "createdAt",
        "updatedAt",
        "deleted",
        "projectId",
        "project",
        "createdBy"
      ],
      "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"
        },
        "archivedAt": {
          "description": "when the project was archived. null unless the project is archived (inactive).",
          "type": "string"
        },
        "archivedBy": {
          "description": "the user who archived the project. null unless the project is archived (inactive).",
          "type": "integer"
        },
        "budgetCount": {
          "description": "how many active budgets the project holds. the project reports one of them\nbelow, and it always resolves in included.projectBudgets. when this is\ngreater than 1 the others are not reported here, so that a page of\nprojects does not carry an unbounded sideload: GET /budgets?projectIds=\nreturns them all.",
          "type": "integer"
        },
        "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"
        },
        "defaultPrivacy": {
          "type": "string"
        },
        "deletedAt": {
          "description": "deletedAt/deletedBy and archivedAt/archivedBy are backed by the same two\ncolumns, split by status, and exposed separately so the storage can be\nuntangled later without an API change. only the pair matching the project's\nstatus is populated.\n\nwhen the project was deleted. null unless the project is deleted.",
          "type": "string"
        },
        "deletedBy": {
          "description": "the user who deleted the project. null unless the project is deleted.",
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "directFileUploadsEnabled": {
          "type": "boolean"
        },
        "endAt": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "financialBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "financialBudgetId": {
          "description": "the project's budget id when its budget is a financial budget, else null.\nnever populated at the same time as timeBudgetId. budgetCount says when the\nproject holds budgets beyond the one reported here; GET /budgets?projectIds=\nreturns them all, whether or not they are reported on the project.",
          "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": {
          "description": "the project status. inactive is the archived state.",
          "enum": [
            "active",
            "inactive",
            "deleted"
          ],
          "type": "string"
        },
        "subStatus": {
          "description": "the project chronogram sub-status, derived from completion and dates",
          "enum": [
            "current",
            "upcoming",
            "late",
            "completed"
          ],
          "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": {
          "description": "the project's budget id when its budget is a time budget, else null. a\nproject can hold an active budget of each type but reports only one, so\nthis is never populated at the same time as financialBudgetId.",
          "type": "integer"
        },
        "timelogRequiresTask": {
          "type": "boolean"
        },
        "type": {
          "description": "the project type",
          "enum": [
            "normal",
            "tasklists-template",
            "projects-template",
            "personal",
            "tentative"
          ],
          "type": "string"
        },
        "update": {
          "$ref": "#/definitions/view.Relationship"
        },
        "updateId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "updatedBy": {
          "type": "integer"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        },
        "workflowIds": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "workflows": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "required": [
        "customFieldValueIds",
        "companyId",
        "tagIds",
        "workflowIds"
      ],
      "title": "ProjectV205",
      "type": "object"
    },
    "view.ProjectsUserMeta": {
      "description": "ProjectsUserMeta contains user-scoped meta about a project listing.",
      "properties": {
        "hasProjects": {
          "type": "boolean"
        }
      },
      "required": [
        "hasProjects"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "title",
        "objects",
        "errorObjectIdxs",
        "assignees",
        "status",
        "state",
        "feedbackCount",
        "description"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "version",
        "approvalStatus",
        "state",
        "title",
        "type",
        "URL",
        "format",
        "sourceFormat",
        "totalChunks",
        "size",
        "thumbnail",
        "description"
      ],
      "title": "ProofObject",
      "type": "object"
    },
    "view.PublicForm": {
      "description": "PublicForm is a publically viewable version of Form",
      "properties": {
        "addSubmitterAsFollower": {
          "type": "boolean"
        },
        "allowFileUpload": {
          "type": "boolean"
        },
        "allowTeamworkBranding": {
          "type": "boolean"
        },
        "backgroundColor": {
          "type": "string"
        },
        "confirmationMessage": {
          "type": "string"
        },
        "content": {
          "$ref": "#/definitions/view.Content"
        },
        "createAsSubmitter": {
          "type": "boolean"
        },
        "createFormTask": {
          "type": "boolean"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "primaryColor": {
          "type": "string"
        },
        "promptAdditionalSubmissions": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        },
        "restrictToProjectUsers": {
          "type": "boolean"
        },
        "showProgressBar": {
          "type": "boolean"
        },
        "submitButtonText": {
          "type": "string"
        },
        "token": {
          "$ref": "#/definitions/view.Token"
        }
      },
      "required": [
        "promptAdditionalSubmissions",
        "allowFileUpload",
        "isPrivate",
        "restrictToProjectUsers",
        "createAsSubmitter",
        "addSubmitterAsFollower",
        "content",
        "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.Currency"
        },
        "defaultBillableRateType": {
          "type": "string"
        },
        "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"
        },
        "isTemplate": {
          "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"
        }
      },
      "required": [
        "id",
        "installationId",
        "quoteNumber",
        "status",
        "issueDate",
        "validUntilDate",
        "isFixedPricing",
        "isTemplate",
        "subTotal",
        "subTotalWithDiscount",
        "taxInclusive",
        "subTotalWithTax",
        "lineItems",
        "sections",
        "unassignedLineItems",
        "maxNumTaxes",
        "quotePlaceholders",
        "currency",
        "taxes",
        "applyDiscountToLineitems",
        "defaultBillableRateType",
        "createdBy",
        "createdAt",
        "updatedBy",
        "updatedAt"
      ],
      "title": "Quote",
      "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"
        },
        "billableRateType": {
          "type": "string"
        },
        "costAmount": {
          "type": "number"
        },
        "costRate": {
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "discountAmount": {
          "type": "number"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "hasMixedDiscount": {
          "type": "boolean"
        },
        "hasMixedTax": {
          "items": {
            "type": "boolean"
          },
          "type": "array"
        },
        "id": {
          "type": "integer"
        },
        "itemType": {
          "type": "string"
        },
        "merged": {
          "type": "boolean"
        },
        "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"
        }
      },
      "required": [
        "id",
        "quoteId",
        "billableAmountWithoutDiscount",
        "billableAmountPercentageOfQuoteTotal",
        "billableAmountWithDiscount",
        "amount",
        "itemType",
        "billableRateType",
        "costAmount",
        "discountAmount",
        "totalTaxAmount",
        "billableAmountWithTaxAndDiscount",
        "profitAmount",
        "profitMarginPercentage",
        "taxes",
        "merged",
        "hasMixedDiscount",
        "hasMixedTax"
      ],
      "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"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "quoteId",
        "name",
        "lineItems",
        "totalQuantity",
        "totalCostAmount",
        "totalDiscountAmount",
        "totalBillableAmountWithoutDiscount",
        "totalBillableAmountWithDiscount",
        "totalTaxAmount",
        "totalBillableAmountWithTaxAndDiscount",
        "totalProfitAmount",
        "totalProfitMarginPercentage"
      ],
      "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"
        }
      },
      "required": [
        "taxBase",
        "taxPercentage",
        "taxAmount",
        "taxIsCompounding"
      ],
      "title": "QuoteTax",
      "type": "object"
    },
    "view.Reaction": {
      "description": "Reaction is a reaction item type.\n\n`Type` carries the legacy reaction enum value (`like`, `dislike`, …) for\nlegacy reactions, and an empty string for custom-emoji reactions. The\ncanonical glyph for every reaction is on `Emoji`. The field is kept\nrequired (rather than being omitted for custom rows) so the v3 schema\ncontract is unchanged for consumers that decode this struct as a fixed\nshape.",
      "properties": {
        "emoji": {
          "type": "string"
        },
        "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"
        }
      },
      "required": [
        "userId",
        "user",
        "installationId",
        "postedDateTime",
        "objectId",
        "object",
        "objectType",
        "type",
        "emoji"
      ],
      "title": "Reaction",
      "type": "object"
    },
    "view.ReactionCount": {
      "description": "ReactionCount is a per-emoji aggregated reaction count.",
      "properties": {
        "count": {
          "type": "integer"
        },
        "emoji": {
          "type": "string"
        },
        "mine": {
          "type": "boolean"
        }
      },
      "required": [
        "emoji",
        "count",
        "mine"
      ],
      "title": "ReactionCount",
      "type": "object"
    },
    "view.ReactionsForObject": {
      "description": "ReactionsForObject contains all reactions information of a specific object.",
      "properties": {
        "counts": {
          "$ref": "#/definitions/view.ReactionsForObjectCounter"
        },
        "extendedReactions": {
          "items": {
            "$ref": "#/definitions/view.ReactionCount"
          },
          "type": "array"
        },
        "mine": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "counts",
        "mine",
        "extendedReactions"
      ],
      "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"
        }
      },
      "required": [
        "like",
        "dislike",
        "joy",
        "frown",
        "heart"
      ],
      "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"
        }
      },
      "required": [
        "messages",
        "tasks",
        "comments"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "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"
        }
      },
      "required": [
        "users"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "source",
        "probability",
        "probabilityValue",
        "impact",
        "impactValue",
        "impactCost",
        "impactSchedule",
        "impactPerformance",
        "createdOn",
        "createdAt",
        "createdByUserId",
        "createdBy",
        "result",
        "mitigationPlan",
        "status",
        "projectId",
        "project",
        "deleted",
        "canEdit"
      ],
      "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"
        }
      },
      "required": [
        "rate",
        "validFrom",
        "createdByUserId",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "rate",
        "createdByUserId",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "code",
        "content"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "createdByUser",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "workflow",
        "name",
        "displayOrder"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "dateLastUpdated",
        "updatedAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "projectId",
        "project",
        "name",
        "color"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "taskId",
        "userId",
        "date",
        "minutes",
        "seconds"
      ],
      "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"
        }
      },
      "required": [
        "canEdit",
        "canComplete",
        "canLogTime",
        "canViewEstTime",
        "canAddSubtasks"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "user",
        "remindAt",
        "type",
        "note",
        "isRelative",
        "relativeNumberDays",
        "wasSent",
        "task",
        "createdBy",
        "createdAt"
      ],
      "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"
        },
        "occurrences": {
          "items": {
            "$ref": "#/definitions/view.TaskSequenceOccurrence"
          },
          "type": "array"
        },
        "rrule": {
          "type": "string"
        },
        "selectedWeekDays": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/view.Relationship"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "frequency",
        "selectedWeekDays"
      ],
      "title": "TaskSequence",
      "type": "object"
    },
    "view.TaskSequenceOccurrence": {
      "description": "TaskSequenceOccurrence is a projected recurring occurrence with concrete\nstart/due/estimate, so the frontend need not re-derive them from the root.",
      "properties": {
        "due": {
          "format": "date",
          "type": "string"
        },
        "estimateMinutes": {
          "type": "integer"
        },
        "start": {
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "start",
        "due",
        "estimateMinutes"
      ],
      "title": "TaskSequenceOccurrence",
      "type": "object"
    },
    "view.TaskStats": {
      "description": "TaskStats shows basic task stats",
      "properties": {
        "active": {
          "type": "integer"
        },
        "complete": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "late": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "complete",
        "active",
        "late"
      ],
      "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"
        }
      },
      "required": [
        "loggedMinutes",
        "billedloggedMinutes",
        "billableLoggedMinutes"
      ],
      "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"
        },
        "hasTimeblocks": {
          "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"
        }
      },
      "required": [
        "dateUpdated",
        "parentTaskId",
        "tasklistId",
        "assigneeUserIds",
        "assigneeUsers",
        "assigneeCompanyIds",
        "assigneeCompanies",
        "assigneeTeamIds",
        "assigneeTeams",
        "assigneeJobRoleIds",
        "assigneeJobRoles"
      ],
      "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"
        }
      },
      "required": [
        "workflowId",
        "stageId",
        "stageTaskDisplayOrder"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "displayOrder",
        "status"
      ],
      "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"
        },
        "lockdown": {
          "$ref": "#/definitions/view.Relationship"
        },
        "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"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "displayOrder",
        "projectId",
        "project",
        "isPinned",
        "isPrivate",
        "status"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "projectId",
        "projectBudgetId",
        "projectbudget",
        "installationId",
        "tasklistId",
        "tasklist",
        "type",
        "capacity",
        "capacityUsed",
        "createdBy",
        "createdAt",
        "updatedBy",
        "updatedAt",
        "notifications",
        "notificationIds"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "budgetId",
        "userId",
        "teamId",
        "companyId",
        "notificationMedium",
        "capacityThreshold"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "handle",
        "createdAt",
        "createdBy",
        "updatedAt",
        "updatedBy"
      ],
      "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"
        }
      },
      "required": [
        "teamId",
        "team",
        "data"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "type",
        "startDate",
        "endDate",
        "status",
        "createdBy",
        "createdAt",
        "updatedBy",
        "updatedAt",
        "minutes",
        "hasChanges"
      ],
      "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"
        }
      },
      "required": [
        "description",
        "requestedAt",
        "requestedBy"
      ],
      "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"
        }
      },
      "required": [
        "estimated",
        "total",
        "billable",
        "nonBillable",
        "nonBilled"
      ],
      "title": "TimeApprovalMinutes",
      "type": "object"
    },
    "view.TimeReportCompanyData": {
      "description": "TimeReportCompanyData contains all the information returned for a company based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "company": {
          "$ref": "#/definitions/view.Relationship"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        }
      },
      "required": [
        "company"
      ],
      "title": "TimeReportCompanyData",
      "type": "object"
    },
    "view.TimeReportData": {
      "description": "TimeReportData contains all the information returned for a time report.",
      "properties": {
        "companies": {
          "items": {
            "$ref": "#/definitions/view.TimeReportCompanyData"
          },
          "type": "array"
        },
        "projects": {
          "items": {
            "$ref": "#/definitions/view.TimeReportProjectData"
          },
          "type": "array"
        },
        "tasklists": {
          "items": {
            "$ref": "#/definitions/view.TimeReportTasklistData"
          },
          "type": "array"
        },
        "tasks": {
          "items": {
            "$ref": "#/definitions/view.TimeReportTaskData"
          },
          "type": "array"
        },
        "teams": {
          "items": {
            "$ref": "#/definitions/view.TimeReportTeamData"
          },
          "type": "array"
        },
        "users": {
          "items": {
            "$ref": "#/definitions/view.TimeReportUserData"
          },
          "type": "array"
        }
      },
      "title": "TimeReportData",
      "type": "object"
    },
    "view.TimeReportProjectData": {
      "description": "TimeReportProjectData contains all the information returned for a project based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "financialBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "project": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timeBudget": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "project"
      ],
      "title": "TimeReportProjectData",
      "type": "object"
    },
    "view.TimeReportTaskData": {
      "description": "TimeReportTaskData contains all the information returned for a task based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "parentTask": {
          "$ref": "#/definitions/view.Relationship"
        },
        "task": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "task"
      ],
      "title": "TimeReportTaskData",
      "type": "object"
    },
    "view.TimeReportTasklistData": {
      "description": "TimeReportTasklistData contains all the information returned for a tasklist based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "financialBudget": {
          "$ref": "#/definitions/view.Relationship"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "tasklist": {
          "$ref": "#/definitions/view.Relationship"
        },
        "timeBudget": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "tasklist"
      ],
      "title": "TimeReportTasklistData",
      "type": "object"
    },
    "view.TimeReportTeamData": {
      "description": "TimeReportTeamData contains all the information returned for a team based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "team": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "team"
      ],
      "title": "TimeReportTeamData",
      "type": "object"
    },
    "view.TimeReportTotal": {
      "description": "TimeReportTotal contains the information for a period in a time report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "endDate": {
          "format": "date",
          "type": "string"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "startDate": {
          "format": "date",
          "type": "string"
        },
        "timeLogged": {
          "type": "string"
        }
      },
      "required": [
        "startDate",
        "endDate",
        "billedTime",
        "billableTime",
        "nonBillableTime",
        "loggedTime",
        "estimatedTime"
      ],
      "title": "TimeReportTotal",
      "type": "object"
    },
    "view.TimeReportTotals": {
      "description": "TimeReportTotals contains all the information returned for time report totals.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billableTimeAverage": {
          "type": "integer"
        },
        "billedTime": {
          "description": "minutes",
          "type": "integer"
        },
        "billedTimeAverage": {
          "description": "averages",
          "type": "integer"
        },
        "dates": {
          "items": {
            "$ref": "#/definitions/view.TimeReportTotal"
          },
          "type": "array"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "estimatedTimeAverage": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "loggedTimeAverage": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "nonBillableTimeAverage": {
          "type": "integer"
        },
        "rowsCount": {
          "type": "integer"
        }
      },
      "required": [
        "billedTime",
        "billableTime",
        "nonBillableTime",
        "loggedTime",
        "estimatedTime",
        "dates"
      ],
      "title": "TimeReportTotals",
      "type": "object"
    },
    "view.TimeReportUserData": {
      "description": "TimeReportUserData contains all the information returned for a user based report.",
      "properties": {
        "billableTime": {
          "type": "integer"
        },
        "billedTime": {
          "type": "integer"
        },
        "estimatedTime": {
          "type": "integer"
        },
        "loggedTime": {
          "type": "integer"
        },
        "nonBillableTime": {
          "type": "integer"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "utilizationTarget": {
          "type": "integer"
        }
      },
      "required": [
        "user",
        "utilizationTarget"
      ],
      "title": "TimeReportUserData",
      "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"
        }
      },
      "required": [
        "project"
      ],
      "title": "Timeblock",
      "type": "object"
    },
    "view.TimeblockSequence": {
      "description": "TimeblockSequence holds stats for the timeblock",
      "properties": {
        "position": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "required": [
        "position",
        "total"
      ],
      "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"
        },
        "billableRate": {
          "type": "number"
        },
        "budgetAllocations": {
          "items": {
            "$ref": "#/definitions/view.BudgetAllocation"
          },
          "type": "array"
        },
        "costInfo": {
          "$ref": "#/definitions/view.CostInfo"
        },
        "costRate": {
          "type": "number"
        },
        "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"
        },
        "verified": {
          "type": "boolean"
        },
        "verifiedAt": {
          "type": "string"
        },
        "verifiedBy": {
          "$ref": "#/definitions/view.Relationship"
        }
      },
      "required": [
        "id",
        "dateCreated",
        "createdAt",
        "minutes",
        "description",
        "timeLogged",
        "billable",
        "isBillable",
        "deleted",
        "hasStartTime",
        "userId",
        "user",
        "projectId",
        "project",
        "loggedByUserId",
        "loggedBy",
        "isLocked",
        "verified"
      ],
      "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"
        }
      },
      "required": [
        "minutes",
        "minutesNonBillable",
        "minutesBillable",
        "minutesBilled",
        "minutesNonBilled",
        "estimatedMinutes",
        "estimatedMinutesFiltered",
        "estimatedMinutesCompleted",
        "estimatedMinutesActive",
        "estimatedMinutesWithLoggedTime"
      ],
      "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"
        }
      },
      "required": [
        "minutes",
        "minutesBillable",
        "estimatedMinutes"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "userId",
        "user",
        "projectId",
        "project",
        "description",
        "running",
        "billable",
        "deleted",
        "createdAt",
        "updatedAt",
        "duration",
        "lastStartedAt",
        "serverTime",
        "intervals"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "from",
        "to",
        "duration"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "entityId",
        "entityType"
      ],
      "title": "TimesheetCustomRow",
      "type": "object"
    },
    "view.TimesheetDateApproval": {
      "description": "TimesheetDateApproval is the inline approval object on a date entry.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "status": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "status"
      ],
      "title": "TimesheetDateApproval",
      "type": "object"
    },
    "view.Token": {
      "description": "Token contains all the information returned from a form token.",
      "properties": {
        "canonicalURL": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "canonicalURL",
        "value"
      ],
      "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"
        }
      },
      "required": [
        "minutes",
        "billableMinutes",
        "nonBillableMinutes",
        "billedMinutes",
        "unavailableMinutes",
        "workingHours"
      ],
      "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"
        }
      },
      "required": [
        "dates",
        "totalUnavailableMinutes"
      ],
      "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"
        }
      },
      "required": [
        "totalUnavailableMinutes",
        "unavailableTimes"
      ],
      "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"
        },
        "inOwnerCompany": {
          "type": "boolean"
        },
        "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"
        },
        "loginTarget": {
          "type": "string"
        },
        "meta": {
          "type": "object"
        },
        "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"
        },
        "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"
        }
      },
      "required": [
        "id",
        "firstName",
        "lastName",
        "email",
        "companyId",
        "companyRoleId",
        "company",
        "isAdmin",
        "siteOwner",
        "inOwnerCompany",
        "isClientUser",
        "isServiceAccount",
        "type",
        "deleted",
        "avatarUrl",
        "lengthOfDay",
        "canAccessPortfolio",
        "canAddProjects",
        "canManagePortfolio",
        "isPlaceholderResource",
        "createdAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "title",
        "color",
        "description",
        "isDefault",
        "userId",
        "user",
        "projectId",
        "project",
        "displayOrder",
        "deleted",
        "createdAt",
        "updatedAt"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "dashboardId",
        "name",
        "type",
        "displayOrder",
        "dashboardPanelSettingIds"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "dashboardId",
        "dashboardPanelId",
        "name"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "dashboardId",
        "name"
      ],
      "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"
        }
      },
      "required": [
        "userIds",
        "users",
        "companyIds",
        "companies",
        "teamIds",
        "teams"
      ],
      "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"
        },
        "loginTarget": {
          "type": "string"
        },
        "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"
        }
      },
      "required": [
        "emailAddress",
        "administrator",
        "userType",
        "userName",
        "phoneNumberMobile",
        "installationId",
        "ldHash"
      ],
      "title": "UserMe",
      "type": "object"
    },
    "view.UserMeAuth": {
      "description": "UserMeAuth contains information returned for user auth",
      "properties": {
        "timestamp": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "userType": {
          "type": "string"
        }
      },
      "required": [
        "token",
        "timestamp",
        "userType"
      ],
      "title": "UserMeAuth",
      "type": "object"
    },
    "view.UserStatus": {
      "description": "UserStatus contains all the information returned from an user status.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "reset": {
          "type": "boolean"
        },
        "status": {
          "$ref": "#/definitions/view.Relationship"
        },
        "statusId": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/view.Relationship"
        },
        "userId": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "userId",
        "statusId",
        "reset",
        "updatedAt"
      ],
      "title": "UserStatus",
      "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"
        }
      },
      "required": [
        "userId",
        "user",
        "data"
      ],
      "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"
        }
      },
      "required": [
        "startDate",
        "endDate",
        "unavailableMinutes",
        "availableMinutes",
        "totalWorkingMinutes",
        "billableMinutes",
        "unbillableMinutes",
        "loggedMinutes",
        "estimatedMinutes",
        "allocatedMinutes",
        "companyCount",
        "utilizationTargetMinutes",
        "availableUtilization",
        "unavailableUtilization",
        "utilizationAchieved",
        "billableUtilization",
        "nonBillableUtilization",
        "allocatedUtilization",
        "actualUtilization",
        "estimatedUtilization",
        "estimatedBillableUtilization"
      ],
      "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"
        }
      },
      "required": [
        "capacity",
        "capacityMinutes",
        "unavailableDay",
        "isHoliday"
      ],
      "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"
        }
      },
      "required": [
        "userId",
        "user",
        "data"
      ],
      "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"
        }
      },
      "required": [
        "rowsCount",
        "totalWorkingMinutes",
        "totalWorkingMinutesAverage",
        "availableMinutes",
        "availableMinutesAverage",
        "unavailableMinutes",
        "unavailableMinutesAverage",
        "billableUtilization",
        "estimatedUtilization",
        "estimatedBillableUtilization"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "name",
        "status",
        "stages",
        "projectIds",
        "companies"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "objectType",
        "objectId",
        "object",
        "name",
        "description",
        "dateCreated",
        "createdAt",
        "entryIds",
        "entries"
      ],
      "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"
        }
      },
      "required": [
        "id",
        "workingHourId",
        "workingHour",
        "weekday",
        "startTime",
        "endTime",
        "taskHours",
        "timezone"
      ],
      "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"
        }
      },
      "required": [
        "workflow",
        "workflowOptions"
      ],
      "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"
        }
      },
      "required": [
        "workflow",
        "workflowOptions"
      ],
      "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.ProjectV205"
              },
              "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"
        }
      },
      "required": [
        "workflow",
        "meta",
        "included"
      ],
      "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.ProjectV205"
              },
              "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"
        }
      },
      "required": [
        "workflows",
        "meta",
        "included"
      ],
      "title": "WorkflowsResponse",
      "type": "object"
    },
    "workload.Included": {
      "description": "Included contains the sideloaded relationships for a workload response.",
      "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"
        }
      },
      "title": "Included",
      "type": "object"
    },
    "workload.Response": {
      "description": "Response contains information about a workload.",
      "properties": {
        "included": {
          "$ref": "#/definitions/workload.Included"
        },
        "meta": {
          "$ref": "#/definitions/view.Meta"
        },
        "workload": {
          "$ref": "#/definitions/view.Workload"
        }
      },
      "required": [
        "workload",
        "meta",
        "included"
      ],
      "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "501": {
            "description": "501 Not Implemented",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "503": {
            "description": "503 Service Unavailable",
            "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"
            }
          },
          "501": {
            "description": "501 Not Implemented",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "503": {
            "description": "503 Service Unavailable",
            "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"
            }
          },
          "501": {
            "description": "501 Not Implemented",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "503": {
            "description": "503 Service Unavailable",
            "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"
            }
          },
          "501": {
            "description": "501 Not Implemented",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "503": {
            "description": "503 Service Unavailable",
            "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",
              "id"
            ],
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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.json": {
      "get": {
        "description": "Get all events.",
        "operationId": "GET_projects_api_v3_calendars_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",
              "id"
            ],
            "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.permissions",
                "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all calendar events.",
        "tags": [
          "CalendarEvents"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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.permissions",
                "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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",
              "id"
            ],
            "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.permissions",
                "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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",
              "id"
            ],
            "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"
          },
          {
            "default": "all",
            "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",
                "customitemrecord"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new comment attached to the object identified by one of the\nquery parameters (taskId, fileVersionId, notebookId, milestoneId, linkId,\neventId, statusId, or projectUpdateId).",
        "operationId": "POST_projects_api_v3_comments.json",
        "parameters": [
          {
            "in": "body",
            "name": "comment.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/comment.Request"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/comment.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a comment",
        "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",
              "id"
            ],
            "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"
          },
          {
            "default": "all",
            "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",
                "customitemrecord"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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)"
          },
          "503": {
            "description": "503 Service Unavailable",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Retrieve a specific comment",
        "tags": [
          "Comments"
        ]
      }
    },
    "/projects/api/v3/comments/{id}/notified.json": {
      "get": {
        "description": "Returns the users that were notified when the specified comment was posted.",
        "operationId": "GET_projects_api_v3_comments_{id}_notified.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",
              "id"
            ],
            "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"
          },
          {
            "default": "all",
            "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",
                "customitemrecord"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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.NotifiedResponse"
            }
          },
          "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": "List users notified for a 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",
              "id"
            ],
            "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",
                "users",
                "companydomains",
                "currencies",
                "customfields",
                "customfieldCompanies",
                "clientPortals"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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",
              "id"
            ],
            "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",
                "users",
                "companydomains",
                "currencies",
                "customfields",
                "customfieldCompanies",
                "clientPortals"
              ],
              "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          {
            "description": "filter by custom field value",
            "in": "query",
            "name": "searchTerm",
            "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": "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",
                "users",
                "companies"
              ],
              "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",
                "activePages"
              ],
              "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "false",
            "description": "SkipLineItems returns lightweight quotes: line items, sections, unassigned\nline items and the per-tax breakdown are omitted, and quote-level totals are\nserved from precomputed stats offering more performance.",
            "in": "query",
            "name": "skipLineItems",
            "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": "Filter by template flag. When unset, only non-template quotes are\nreturned.",
            "in": "query",
            "name": "isTemplate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "IncludeTotals returns an aggregated totals-by-currency summary of the full\nfiltered result set (ignoring pagination) in the response meta.",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include section items",
            "in": "query",
            "name": "includeSectionItems",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "ConvertToInstallationCurrency converts each quote's totals into the\ninstallation currency, where a conversion rate is available.",
            "in": "query",
            "name": "convertToInstallationCurrency",
            "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"
          },
          {
            "default": "[]",
            "description": "Filter by company IDs (comma-separated)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "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 for a specific company.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/company/{id}/quotes/number-preview.json": {
      "get": {
        "operationId": "GET_projects_api_v3_company_{id}_quotes_number-preview.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.QuoteNumberPreviewResponse"
            }
          },
          "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": "Preview the next auto-generated quote number.",
        "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",
              "project"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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.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. The entity-scoped variant\nadditionally filters by the supplied entity type and entity ID.",
        "operationId": "GET_projects_api_v3_containers_insights.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",
              "project"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get insights containers for a specific route.",
        "tags": [
          "Containers"
        ]
      }
    },
    "/projects/api/v3/containers/insights/{entity}/{entityId}/{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. The entity-scoped variant\nadditionally filters by the supplied entity type and entity ID.",
        "operationId": "GET_projects_api_v3_containers_insights_{entity}_{entityId}_{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",
              "project"
            ],
            "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"
          },
          {
            "in": "path",
            "name": "entityId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "entity",
            "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"
          },
          {
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get insights containers for a specific route.",
        "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. The entity-scoped variant\nadditionally filters by the supplied entity type and entity ID.",
        "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",
              "project"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": [
          {
            "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",
              "project"
            ],
            "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"
          },
          {
            "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"
          },
          {
            "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.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/custom-exchange-rates.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a custom exchange rate for a specific currency pair and validity period.",
        "operationId": "POST_projects_api_v3_custom-exchange-rates.json",
        "parameters": [
          {
            "in": "body",
            "name": "customexchangerate.CreateRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customexchangerate.CreateRequest"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRateResponse"
            }
          },
          "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new custom exchange rate",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/custom-exchange-rates/latest.json": {
      "get": {
        "description": "Get the most relevant exchange rate for each currency pair.\nPriority: 1) active rates (currently valid), 2) nearest future rate, 3) most recent past rate.\nUse the include parameter to sideload related users (creators, updaters).",
        "operationId": "GET_projects_api_v3_custom-exchange-rates_latest.json",
        "parameters": [
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "List latest ExchangeRate per currency pair",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/custom-exchange-rates/live.json": {
      "get": {
        "description": "Retrieves live exchange rates from the Forex service for all currency pairs\nthat have custom exchange rates defined.",
        "operationId": "GET_projects_api_v3_custom-exchange-rates_live.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/exchangerate.LiveRatesForCustomPairsResponse"
            }
          },
          "504": {
            "description": "504 Gateway Timeout",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get live exchange rates for custom pairs.",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/custom-exchange-rates/lookup.json": {
      "get": {
        "description": "Find the applicable custom exchange rate for a currency pair on a specific date.",
        "operationId": "GET_projects_api_v3_custom-exchange-rates_lookup.json",
        "parameters": [
          {
            "in": "query",
            "name": "toCurrency",
            "type": "string"
          },
          {
            "in": "query",
            "name": "fromCurrency",
            "type": "string"
          },
          {
            "in": "query",
            "name": "date",
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRateResponse"
            }
          },
          "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": "Lookup a custom exchange rate",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/custom-exchange-rates/{fromCurrency}/{toCurrency}.json": {
      "get": {
        "description": "Get a list of ExchangeRate for a specific currency pair with optional filters.\nUse the include parameter to sideload related users (creators, updaters).",
        "operationId": "GET_projects_api_v3_custom-exchange-rates_{fromCurrency}_{toCurrency}.json",
        "parameters": [
          {
            "in": "query",
            "name": "validOn",
            "type": "string"
          },
          {
            "description": "Three-letter ISO currency code for the target currency (e.g., USD, EUR, GBP).",
            "in": "path",
            "name": "toCurrency",
            "required": true,
            "type": "string"
          },
          {
            "description": "Three-letter ISO currency code for the source currency (e.g., USD, EUR, GBP).",
            "in": "path",
            "name": "fromCurrency",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "skipCounts",
            "type": "boolean"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRatesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "List ExchangeRate for currency pair",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/custom-exchange-rates/{id}.json": {
      "delete": {
        "description": "Soft-delete a custom exchange rate.",
        "operationId": "DELETE_projects_api_v3_custom-exchange-rates_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": "Delete a custom exchange rate",
        "tags": [
          "ExchangeRate"
        ]
      },
      "get": {
        "description": "Get a single custom exchange rate by ID.",
        "operationId": "GET_projects_api_v3_custom-exchange-rates_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRateResponse"
            }
          },
          "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 custom exchange rate",
        "tags": [
          "ExchangeRate"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Partially update an existing custom exchange rate.",
        "operationId": "PATCH_projects_api_v3_custom-exchange-rates_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "customexchangerate.UpdateRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customexchangerate.UpdateRequest"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customexchangerate.CustomExchangeRateResponse"
            }
          },
          "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a custom exchange rate",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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/records/{id}.json": {
      "get": {
        "description": "Return all details about an individual custom item record.",
        "operationId": "GET_projects_api_v3_customitems_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",
              "id"
            ],
            "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"
          },
          {
            "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 comment stats (total and read count) per record",
            "in": "query",
            "name": "includeCommentStats",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a record by ID.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
        ]
      },
      "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",
              "id"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new field.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/fields/validate-formula.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Validates a candidate formula against the custom item's existing field\nschema without persisting anything. Returns the formula's output unit on\nsuccess, or a list of structured errors describing what is wrong.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_fields_validate-formula.json",
        "parameters": [
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "field.VerifyFormulaRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/field.VerifyFormulaRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/field.VerifyFormulaResponse"
            }
          },
          "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": "Validate a custom item formula expression.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
        ]
      },
      "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item field.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/fields/{id}/options.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new custom item field option for the specified field.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_fields_{id}_options.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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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 option.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/fields/{id}/options/{optionId}.json": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}_fields_{id}_options_{optionId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "optionId",
            "required": true,
            "type": "integer"
          },
          {
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete an existing custom item field option",
        "tags": [
          "CustomItems"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Edit an existing custom item field option for the specified field.",
        "operationId": "PATCH_projects_api_v3_customitems_{customItemId}_fields_{id}_options_{optionId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "optionId",
            "required": true,
            "type": "integer"
          },
          {
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing option.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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"
          },
          {
            "default": "false",
            "description": "include comment stats (total and read count) per record",
            "in": "query",
            "name": "includeCommentStats",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records/bulk.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create multiple custom item records in a single call. Referenced section names\nare created-or-used and assignee emails are resolved to users server-side, so an\nimporter working from a file need not resolve either per row. A caller that\nalready holds section ids may send \"sectionId\" instead, which takes precedence\nover \"sectionName\".\n\nBy default the batch is transactional: the first bad row aborts the request\nwith a 4xx identifying the row under \"meta.index\", and nothing is created.\nSet \"options.partialSuccess\" to true to create rows independently instead:\nvalid rows are created and failures are reported per row under \"failed\" by\nrequest index. When nothing could be created the response is 403 (every row\nforbidden) or 400, each error carrying its row under \"meta.index\".",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_records_bulk.json",
        "parameters": [
          {
            "in": "body",
            "name": "record.BulkRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/record.BulkRequest"
            }
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/record.BulkResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create multiple records.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Delete several custom item records.",
        "operationId": "POST_projects_api_v3_customitems_{customItemId}_records_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "record.DeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/record.DeleteRequest"
            }
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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 item records at once.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          "CustomItems"
        ]
      },
      "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",
              "id"
            ],
            "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"
          },
          {
            "default": "false",
            "description": "include comment stats (total and read count) per record",
            "in": "query",
            "name": "includeCommentStats",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item record.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records/{id}/comments.json": {
      "get": {
        "operationId": "GET_projects_api_v3_customitems_{customItemId}_records_{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": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "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"
          },
          {
            "in": "path",
            "name": "customItemId",
            "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 custom item record",
        "tags": [
          "CustomItemRecordComments"
        ]
      }
    },
    "/projects/api/v3/customitems/{customItemId}/records/{recordId}/fields/{id}.json": {
      "delete": {
        "description": "Delete a custom item field value.",
        "operationId": "DELETE_projects_api_v3_customitems_{customItemId}_records_{recordId}_fields_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "recordId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "customItemId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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 value.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          "CustomItems"
        ]
      }
    },
    "/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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          "CustomItems"
        ]
      },
      "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",
              "id"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit an existing custom item section.",
        "tags": [
          "CustomItems"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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": "Three-letter ISO currency code (e.g., USD, EUR, GBP).",
            "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"
            }
          },
          "504": {
            "description": "504 Gateway Timeout",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all exchange rates for a base currency",
        "tags": [
          "ExchangeRate"
        ]
      }
    },
    "/projects/api/v3/exchange-rates/{fromCurrency}/{toCurrency}.json": {
      "get": {
        "description": "Retrieves the exchange rate between two currencies for a specific date (or today if not specified).\nUses the user's timezone to determine \"today\" when no date is provided.",
        "operationId": "GET_projects_api_v3_exchange-rates_{fromCurrency}_{toCurrency}.json",
        "parameters": [
          {
            "description": "Three-letter ISO currency code for the target currency (e.g., USD, EUR, GBP).",
            "in": "path",
            "name": "toCurrency",
            "required": true,
            "type": "string"
          },
          {
            "description": "Three-letter ISO currency code for the source currency (e.g., USD, EUR, GBP).",
            "in": "path",
            "name": "fromCurrency",
            "required": true,
            "type": "string"
          },
          {
            "description": "Date for the exchange rate (YYYY-MM-DD format). Defaults to today in the user's timezone.",
            "format": "date",
            "in": "query",
            "name": "date",
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/exchangerate.ExchangeRateResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "504": {
            "description": "504 Gateway Timeout",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get exchange rate for a currency pair",
        "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/files/{fileId}/project.json": {
      "get": {
        "description": "Returns the project that the given file belongs to. The id refers to the\n`projects_files.id` (not a file version).",
        "operationId": "GET_projects_api_v3_files_{fileId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific file.",
        "tags": [
          "Files"
        ]
      }
    },
    "/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": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
          },
          {
            "description": "filter by the client portals the form is linked to",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientPortalIds",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "423": {
            "description": "423 Locked",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
          },
          {
            "description": "filter by the client portals the form is linked to",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientPortalIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/form.PublicResponse"
            }
          },
          "401": {
            "description": "401 Unauthorized",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "423": {
            "description": "423 Locked",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a forms via its token.",
        "tags": [
          "FormsPublic"
        ]
      }
    },
    "/projects/api/v3/forms/public/{token}/presignedurl.json": {
      "get": {
        "description": "Returns a pre-signed URL that the form submitter can use to upload a file\nattachment directly to the storage backend, scoped to the public form\nidentified by the token.",
        "operationId": "GET_projects_api_v3_forms_public_{token}_presignedurl.json",
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "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",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Pre-signed upload URL for form attachments.",
        "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.FormsResponse"
            }
          },
          "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)"
          },
          "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 form.",
        "tags": [
          "Forms"
        ]
      },
      "get": {
        "operationId": "GET_projects_api_v3_forms_{formId}.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",
              "id"
            ],
            "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"
          },
          {
            "in": "path",
            "name": "formId",
            "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"
          },
          {
            "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",
                "activePages"
              ],
              "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"
          },
          {
            "description": "filter by the client portals the form is linked to",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientPortalIds",
            "type": "array"
          }
        ],
        "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/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": [
          {
            "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",
              "id"
            ],
            "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"
          },
          {
            "in": "path",
            "name": "formId",
            "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"
          },
          {
            "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",
                "activePages"
              ],
              "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"
          },
          {
            "description": "filter by the client portals the form is linked to",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "clientPortalIds",
            "type": "array"
          }
        ],
        "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/form.Response"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get the draft version of a specific form.",
        "tags": [
          "Forms"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates the draft revision of a form without publishing the changes to the\npublic-facing form.",
        "operationId": "PATCH_projects_api_v3_forms_{formId}_draft.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 the draft version of an existing 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/insights/utilization/{type}.json": {
      "get": {
        "description": "Returns utilization data scoped to the supplied report type (user, team,\njob role, dashboard variants, etc.). Supports the same filters as the\npeople utilization endpoint.",
        "operationId": "GET_projects_api_v3_insights_utilization_{type}.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"
          },
          {
            "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"
          },
          {
            "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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get utilization insights by report type.",
        "tags": [
          "Utilization"
        ]
      }
    },
    "/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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": [
          {
            "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"
          },
          {
            "in": "path",
            "name": "jobRoleId",
            "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": "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.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 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"
          },
          {
            "default": "date",
            "description": "sort by",
            "enum": [
              "date",
              "projectId",
              "userId",
              "activityTypes",
              "id"
            ],
            "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": "filter by the ids of the items the activity refers to (task ids,\nmilestone ids, message ids, ...). As item ids are only unique within an\nitem type, this is normally combined with activityTypes.",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "itemIds",
            "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",
                "activePages"
              ],
              "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",
                "fromUserName",
                "dueDate",
                "isPrivate",
                "lockdownId",
                "projectId",
                "companyId"
              ],
              "type": "string"
            },
            "name": "fields[activities]",
            "type": "array"
          },
          {
            "description": "exclude activity created by these user ids. Use it with the logged-in\nuser id to hide your own activity from the feed.",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeUserIds",
            "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/links/{linkId}/project.json": {
      "get": {
        "description": "Returns the project that the given link item belongs to.",
        "operationId": "GET_projects_api_v3_links_{linkId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "linkId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific 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",
                "activePages"
              ],
              "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.Response2"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get logged user information",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/me/personaltasks.json": {
      "get": {
        "description": "Returns the personal tasks for the logged-in user.\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_me_personaltasks.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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the current user's personal tasks.",
        "tags": [
          "Tasks"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new personal task.",
        "operationId": "POST_projects_api_v3_me_personaltasks.json",
        "parameters": [
          {
            "in": "body",
            "name": "task.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/task.Request"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Creates a personal task.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/me/personaltasks/{id}.json": {
      "get": {
        "description": "Returns the personal task with the provided id for the logged-in user.\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_me_personaltasks_{id}.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"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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.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": "Get a specific personal task.",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "501": {
            "description": "501 Not Implemented",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Edit a message.",
        "tags": [
          "Messages"
        ],
        "x-private": true
      }
    },
    "/projects/api/v3/messages/{messageId}/project.json": {
      "get": {
        "description": "Returns the project that the given message belongs to.",
        "operationId": "GET_projects_api_v3_messages_{messageId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "messageId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific message.",
        "tags": [
          "Messages"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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/{milestoneId}.json": {
      "get": {
        "description": "This returns all details about an individual milestone.",
        "operationId": "GET_projects_api_v3_milestones_{milestoneId}.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",
              "id"
            ],
            "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": "milestoneId",
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": [
          {
            "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": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "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": "milestoneId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "use strict html filtering fto 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": "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 milestone",
        "tags": [
          "MilestoneComments"
        ]
      }
    },
    "/projects/api/v3/milestones/{milestoneId}/project.json": {
      "get": {
        "description": "Returns the project that the given milestone belongs to.",
        "operationId": "GET_projects_api_v3_milestones_{milestoneId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "milestoneId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific milestone.",
        "tags": [
          "Milestones"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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",
                "activePages"
              ],
              "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",
                "activePages"
              ],
              "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}/project.json": {
      "get": {
        "description": "Returns the project that the given notebook belongs to.",
        "operationId": "GET_projects_api_v3_notebooks_{notebookId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "notebookId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific 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"
          },
          {
            "description": "versions to delete",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "versionIds",
            "type": "array"
          }
        ],
        "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",
              "id"
            ],
            "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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 skill ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skillIds",
            "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). `currencies` is only populated for administrators of the owner company",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies",
                "teams",
                "jobRoles"
              ],
              "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of people",
        "tags": [
          "People"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_people.json",
        "parameters": [
          {
            "in": "body",
            "name": "people.PersonRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/people.PersonRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "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": "Create a new user.",
        "tags": [
          "Users"
        ],
        "x-private": true
      }
    },
    "/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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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",
              "id"
            ],
            "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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 skill ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skillIds",
            "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). `currencies` is only populated for administrators of the owner company",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies",
                "teams",
                "jobRoles"
              ],
              "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a person",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/planning/autoschedule/health.json": {
      "get": {
        "operationId": "GET_projects_api_v3_planning_autoschedule_health.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/autoschedule.HealthResponse"
            }
          },
          "502": {
            "description": "502 Bad Gateway",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Check that the scheduling service is reachable.",
        "tags": [
          "AutoSchedule",
          "health"
        ]
      }
    },
    "/projects/api/v3/planning/autoschedule/highlights.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_planning_autoschedule_highlights.json",
        "parameters": [
          {
            "in": "body",
            "name": "autoschedule.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/autoschedule.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/autoschedule.HighlightsResponse"
            }
          },
          "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "502": {
            "description": "502 Bad Gateway",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Runs optimisation and computes summary highlights.",
        "tags": [
          "AutoSchedule",
          "highlights"
        ]
      }
    },
    "/projects/api/v3/planning/autoschedule/persist.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_planning_autoschedule_persist.json",
        "parameters": [
          {
            "in": "body",
            "name": "autoschedule.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/autoschedule.Request"
            }
          }
        ],
        "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "502": {
            "description": "502 Bad Gateway",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Optimise and persist the result to the DB.",
        "tags": [
          "AutoSchedule",
          "persist"
        ]
      }
    },
    "/projects/api/v3/planning/autoschedule/preview.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "operationId": "POST_projects_api_v3_planning_autoschedule_preview.json",
        "parameters": [
          {
            "in": "body",
            "name": "autoschedule.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/autoschedule.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/entity.AutoScheduleResponse"
            }
          },
          "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "502": {
            "description": "502 Bad Gateway",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Optimise without persisting; return the plan.",
        "tags": [
          "AutoSchedule",
          "preview"
        ]
      }
    },
    "/projects/api/v3/planning/autoschedule/validate.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Returns a 200 report describing whether the request can be scheduled, with\nvalidation state carried as fields in the report body. Requesting more than\none project returns 400; unschedulable input (for example a dependency cycle,\nor tasks that have no possible assignee) returns 422. When no schedulable\nusers are found the report sets noUsersLoaded=true instead of returning an\nerror.",
        "operationId": "POST_projects_api_v3_planning_autoschedule_validate.json",
        "parameters": [
          {
            "in": "body",
            "name": "autoschedule.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/autoschedule.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/autoschedule.ValidateResponse"
            }
          },
          "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"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Validate a request without scheduling or saving.",
        "tags": [
          "AutoSchedule",
          "validate"
        ]
      }
    },
    "/projects/api/v3/plans.json": {
      "get": {
        "description": "Return price plans and associated features.",
        "operationId": "GET_projects_api_v3_plans.json",
        "parameters": [
          {
            "description": "filter by priceplan ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "planIds",
            "type": "array"
          }
        ],
        "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": [
          "PricePlans"
        ]
      }
    },
    "/projects/api/v3/plans/{planId}.json": {
      "get": {
        "description": "Return a single price plan and its associated features.",
        "operationId": "GET_projects_api_v3_plans_{planId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "planId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by priceplan ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "planIds",
            "type": "array"
          }
        ],
        "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 a single price plan by ID",
        "tags": [
          "PricePlans"
        ]
      }
    },
    "/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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": "desc",
            "description": "order mode. defaults to asc when ordering by displayOrder",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "dateCreated",
            "description": "order by. displayOrder sorts by the preferred order of the associated\ntask list, matching GET /projects/api/v3/tasklists.json",
            "enum": [
              "dateCreated",
              "displayOrder",
              "id"
            ],
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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/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": "opt back in to indicators that are off by default",
            "in": "query",
            "items": {
              "enum": [
                "project_no_end_date"
              ],
              "type": "string"
            },
            "name": "includeIndicators",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "projects"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "turn off indicators that are on by default",
            "in": "query",
            "items": {
              "enum": [
                "late_tasks",
                "progress_lagging",
                "budget_burn_risk",
                "stagnation"
              ],
              "type": "string"
            },
            "name": "excludeIndicators",
            "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/invoices.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_invoices.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/number.json": {
      "get": {
        "description": "# Retrieves the project number settings.",
        "operationId": "GET_projects_api_v3_projects_number.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.ProjectNumberSettingsResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the project number settings",
        "tags": [
          "Projects"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "# Creates or partially updates the project number settings. Only an administrator can do this.",
        "operationId": "PUT_projects_api_v3_projects_number.json",
        "parameters": [
          {
            "in": "body",
            "name": "project.ProjectNumberSettingsRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/project.ProjectNumberSettingsRequest"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/project.ProjectNumberSettingsResponse"
            }
          },
          "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": "Set the project number settings",
        "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a list of projects templates",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/templates/{id}.json": {
      "get": {
        "description": "Retrieve a single project template by its ID. Only project 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_{id}.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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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"
          },
          {
            "in": "path",
            "name": "id",
            "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 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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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 template",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/api/v3/projects/templates/{id}/customfields/required.json": {
      "get": {
        "description": "Returns the list of custom fields that are marked as required for the given\nproject template.",
        "operationId": "GET_projects_api_v3_projects_templates_{id}_customfields_required.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customfield.CustomFieldsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get required custom fields for a project template",
        "tags": [
          "Projects"
        ]
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Replaces the set of custom fields marked as required on the given project\ntemplate with the supplied list.",
        "operationId": "PUT_projects_api_v3_projects_templates_{id}_customfields_required.json",
        "parameters": [
          {
            "in": "body",
            "name": "project.RequiredCustomFieldRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/project.RequiredCustomFieldRequest"
            }
          },
          {
            "in": "path",
            "name": "id",
            "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",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update required custom fields on a template",
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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 tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only compute and return the completed task counter when true (or when fields[tasks] includes \"complete\")",
            "in": "query",
            "name": "includeCompletedTasks",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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": [
          {
            "description": "filter by custom field value",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "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",
                "users"
              ],
              "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",
                "activePages"
              ],
              "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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",
              "id"
            ],
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          "CustomItems"
        ]
      }
    },
    "/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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "date",
            "description": "sort by",
            "enum": [
              "date",
              "projectId",
              "userId",
              "activityTypes",
              "id"
            ],
            "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": "filter by the ids of the items the activity refers to (task ids,\nmilestone ids, message ids, ...). As item ids are only unique within an\nitem type, this is normally combined with activityTypes.",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "itemIds",
            "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",
                "activePages"
              ],
              "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",
                "fromUserName",
                "dueDate",
                "isPrivate",
                "lockdownId",
                "projectId",
                "companyId"
              ],
              "type": "string"
            },
            "name": "fields[activities]",
            "type": "array"
          },
          {
            "description": "exclude activity created by these user ids. Use it with the logged-in\nuser id to hide your own activity from the feed.",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeUserIds",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
                "activePages"
              ],
              "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",
              "id"
            ],
            "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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 skill ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skillIds",
            "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). `currencies` is only populated for administrators of the owner company",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies",
                "teams",
                "jobRoles",
                "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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 skill ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "skillIds",
            "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). `currencies` is only populated for administrators of the owner company",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "workingHours",
                "currencies",
                "teams",
                "jobRoles",
                "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": {
        "consumes": [
          "application/json"
        ],
        "description": "Copies the risk register from one project to another.",
        "operationId": "PUT_projects_api_v3_projects_{projectId}_risks_copy.json",
        "parameters": [
          {
            "in": "body",
            "name": "risk.CopyRiskPayload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/risk.CopyRiskPayload"
            }
          },
          {
            "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",
              "id"
            ],
            "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",
              "id"
            ],
            "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",
              "id"
            ],
            "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",
                "defaultTasks.jobRoles",
                "defaultTasks.tags",
                "defaultTasks.changeFollowers",
                "defaultTasks.commentFollowers",
                "defaultTasks.completeFollowers",
                "defaultTasks.lockdowns",
                "defaultTasks.lockdowns.users",
                "defaultTasks.lockdowns.companies",
                "defaultTasks.lockdowns.teams",
                "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",
                "tasklisttaskstats",
                "tasklistBudgets",
                "tasklistBudgets.notifications",
                "tasklistBudgets.notifications.users",
                "tasklistBudgets.notifications.teams",
                "tasklistBudgets.notifications.companies"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
              "id"
            ],
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "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",
              "nonbillable"
            ],
            "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"
          },
          {
            "description": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get timelog totals for a specific project.",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/projects/{projectId}/workflows.json": {
      "delete": {
        "operationId": "DELETE_projects_api_v3_projects_{projectId}_workflows.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": "Remove an existing workflow from a project.",
        "tags": [
          "Workflows"
        ],
        "x-private": true
      },
      "get": {
        "description": "Returns all workflows. When a project ID is supplied the result is scoped to\nworkflows linked to that project.",
        "operationId": "GET_projects_api_v3_projects_{projectId}_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"
          },
          {
            "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": "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get all workflows.",
        "tags": [
          "Workflows"
        ]
      },
      "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Applies a workflow to a project",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/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)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "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": [
          {
            "description": "group by",
            "enum": [
              "section",
              "type",
              "assignee"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "include section items",
            "in": "query",
            "name": "includeSectionItems",
            "type": "boolean"
          },
          {
            "description": "merge types",
            "in": "query",
            "items": {
              "enum": [
                "TASK",
                "EXPENSE",
                "ALLOCATION",
                "OTHER"
              ],
              "type": "string"
            },
            "name": "mergeTypes",
            "type": "array"
          },
          {
            "description": "merge sections",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "mergeSections",
            "type": "array"
          },
          {
            "description": "merge assignees",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "mergeAssignees",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "companies",
                "projects",
                "currencies",
                "exportPreferences"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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/{id}/export/preferences.json": {
      "get": {
        "operationId": "GET_projects_api_v3_quote_{id}_export_preferences.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.ExportPreferencesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get export preferences for a quote.",
        "tags": [
          "QuoteExportPreferences"
        ]
      }
    },
    "/projects/api/v3/quote/{id}/export/preferences/{type}.json": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "operationId": "PUT_projects_api_v3_quote_{id}_export_preferences_{type}.json",
        "parameters": [
          {
            "in": "body",
            "name": "quote.ExportPreferencesRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/quote.ExportPreferencesRequest"
            }
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/quote.ExportPreferencesResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Save quote export preferences.",
        "tags": [
          "QuoteExportPreferences"
        ]
      }
    },
    "/projects/api/v3/quote/{quoteId}/lineitem.json": {
      "post": {
        "operationId": "POST_projects_api_v3_quote_{quoteId}_lineitem.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}/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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a 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/quote/{quoteId}/section/{id}.json": {
      "patch": {
        "operationId": "PATCH_projects_api_v3_quote_{quoteId}_section_{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/quotesection.QuoteSectionResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update a quote section.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quotes.json": {
      "get": {
        "description": "By default, only non-template quotes are returned; pass `?isTemplate=true`\nto list templates instead.",
        "operationId": "GET_projects_api_v3_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"
          },
          {
            "default": "false",
            "description": "SkipLineItems returns lightweight quotes: line items, sections, unassigned\nline items and the per-tax breakdown are omitted, and quote-level totals are\nserved from precomputed stats offering more performance.",
            "in": "query",
            "name": "skipLineItems",
            "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": "Filter by template flag. When unset, only non-template quotes are\nreturned.",
            "in": "query",
            "name": "isTemplate",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "IncludeTotals returns an aggregated totals-by-currency summary of the full\nfiltered result set (ignoring pagination) in the response meta.",
            "in": "query",
            "name": "includeTotals",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include section items",
            "in": "query",
            "name": "includeSectionItems",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "ConvertToInstallationCurrency converts each quote's totals into the\ninstallation currency, where a conversion rate is available.",
            "in": "query",
            "name": "convertToInstallationCurrency",
            "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"
          },
          {
            "default": "[]",
            "description": "Filter by company IDs (comma-separated)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "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 across all companies.",
        "tags": [
          "Quotes"
        ]
      },
      "post": {
        "operationId": "POST_projects_api_v3_quotes.json",
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new quote.",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/projects/api/v3/quotes/clone": {
      "post": {
        "operationId": "POST_projects_api_v3_quotes_clone",
        "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": "Clone an existing quote.",
        "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "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.json": {
      "get": {
        "description": "Returns the scheduled reports available to the current user with support\nfor pagination, filtering by source, creator, custom report and schedule\nstatus, and side-loading of recipients, creators and editors.",
        "operationId": "GET_projects_api_v3_reporting.json",
        "parameters": [
          {
            "description": "filter by report name",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "sort by",
            "enum": [
              "name",
              "lastReport",
              "nextReport",
              "sourceName",
              "createdDate",
              "lastOccurrence",
              "nextOccurrence",
              "until",
              "format",
              "createdBy",
              "lastUpdated",
              "active",
              "id"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "filter by source id",
            "in": "query",
            "name": "sourceId",
            "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 schedule status",
            "in": "query",
            "items": {
              "enum": [
                "upcoming",
                "paused",
                "expired"
              ],
              "type": "string"
            },
            "name": "scheduleStatuses",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "recipients",
                "creators",
                "editors"
              ],
              "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",
                "description",
                "color",
                "format",
                "sourceId",
                "createdByUserId",
                "userSavedFilterId",
                "schedules",
                "options"
              ],
              "type": "string"
            },
            "name": "fields[reports]",
            "type": "array"
          },
          {
            "description": "filter by custom report ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "customReportIds",
            "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/report.ResponseReports"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "List scheduled reports.",
        "tags": [
          "Reports"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates a new scheduled report along with its schedules and options. The\nnewly created report is returned and the `Location` header points at its\ncanonical URL.",
        "operationId": "POST_projects_api_v3_reporting.json",
        "parameters": [
          {
            "in": "body",
            "name": "report.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/report.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/report.ResponseReport"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a scheduled report.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Deletes multiple scheduled reports in a single request. The body must\nspecify the `reportIds` to remove.",
        "operationId": "POST_projects_api_v3_reporting_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "report.deleteReportsRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/report.deleteReportsRequest"
            }
          }
        ],
        "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": "Bulk delete scheduled reports.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom.json": {
      "get": {
        "description": "Returns the custom reports available for the current user. Supports\npagination, filtering, sorting and side-loading of related entities.",
        "operationId": "GET_projects_api_v3_reporting_custom.json",
        "parameters": [
          {
            "description": "filter by report title or creator",
            "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",
              "createdby",
              "datecreated",
              "type",
              "dateupdated",
              "dateenqueued",
              "dategenerated",
              "starred",
              "recentlyaccessed",
              "id"
            ],
            "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"
          },
          {
            "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",
            "in": "query",
            "name": "onlyStarred",
            "type": "boolean"
          },
          {
            "description": "filter by owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ownerIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "teams",
                "users",
                "projects",
                "companies",
                "projectCategories",
                "milestones",
                "tags",
                "tasklists",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by custom report 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",
                "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",
                "activePages"
              ],
              "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",
                "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",
                "baseType",
                "status",
                "name",
                "startAt",
                "lastGeneratedAt",
                "endAt",
                "datePeriod",
                "summary",
                "ownedByUser",
                "createdAt",
                "createdByUser",
                "updatedAt",
                "updatedByUser",
                "deletedAt",
                "deletedByUser",
                "grantAccessTo",
                "columns",
                "customfields",
                "filters",
                "sortByPosition",
                "sortOrder"
              ],
              "type": "string"
            },
            "name": "fields[customReports]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by creator ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.CustomReportsResponse"
            }
          },
          "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": "List custom reports.",
        "tags": [
          "CustomReports"
        ]
      },
      "post": {
        "description": "Creates a new custom report from the supplied configuration. On success the\nnewly created custom report is returned in the same shape as\n`GET /reporting/custom/{id}.json`.",
        "operationId": "POST_projects_api_v3_reporting_custom.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.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 custom report.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom/builder.json": {
      "get": {
        "description": "Returns the metadata required to build a custom report (available sources,\ncolumns, filters and custom fields).",
        "operationId": "GET_projects_api_v3_reporting_custom_builder.json",
        "parameters": [
          {
            "default": "true",
            "description": "filter by custom fields at site level only",
            "in": "query",
            "name": "customFieldsSiteLevelOnly",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.BuilderResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get custom report builder metadata.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom/bulk/delete.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Deletes multiple custom reports in a single request. The body must specify\nthe `ids` of the reports to remove.",
        "operationId": "POST_projects_api_v3_reporting_custom_bulk_delete.json",
        "parameters": [
          {
            "in": "body",
            "name": "customreport.BulkDeleteRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customreport.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",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Bulk delete custom reports.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom/enqueue/{id}.json": {
      "put": {
        "description": "Triggers the custom reports worker to (re)generate the data for the given\ncustom report. Optional `dryRun` and `force` query parameters control\ndry-run and forced re-processing.",
        "operationId": "PUT_projects_api_v3_reporting_custom_enqueue_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "202": {
            "description": "202 Accepted (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": "Enqueue a custom report for processing.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom/{id}.json": {
      "delete": {
        "description": "Deletes the custom report identified by `id`.",
        "operationId": "DELETE_projects_api_v3_reporting_custom_{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",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete a custom report.",
        "tags": [
          "CustomReports"
        ]
      },
      "get": {
        "description": "Returns a single custom report. Supports side-loading of related entities\n(users, teams, projects, etc).",
        "operationId": "GET_projects_api_v3_reporting_custom_{id}.json",
        "parameters": [
          {
            "description": "filter by report title or creator",
            "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",
              "createdby",
              "datecreated",
              "type",
              "dateupdated",
              "dateenqueued",
              "dategenerated",
              "starred",
              "recentlyaccessed",
              "id"
            ],
            "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"
          },
          {
            "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",
            "in": "query",
            "name": "onlyStarred",
            "type": "boolean"
          },
          {
            "description": "filter by owner ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "ownerIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "teams",
                "users",
                "projects",
                "companies",
                "projectCategories",
                "milestones",
                "tags",
                "tasklists",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "filter by custom report 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",
                "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",
                "activePages"
              ],
              "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",
                "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",
                "baseType",
                "status",
                "name",
                "startAt",
                "lastGeneratedAt",
                "endAt",
                "datePeriod",
                "summary",
                "ownedByUser",
                "createdAt",
                "createdByUser",
                "updatedAt",
                "updatedByUser",
                "deletedAt",
                "deletedByUser",
                "grantAccessTo",
                "columns",
                "customfields",
                "filters",
                "sortByPosition",
                "sortOrder"
              ],
              "type": "string"
            },
            "name": "fields[customReports]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "logoUploadedToServer",
                "logoImage"
              ],
              "type": "string"
            },
            "name": "fields[companies]",
            "type": "array"
          },
          {
            "description": "filter by creator ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "creatorIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.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 custom report by ID.",
        "tags": [
          "CustomReports"
        ]
      },
      "patch": {
        "description": "Applies a partial update to the custom report identified by `id`. On\nsuccess the updated custom report is returned in the same shape as\n`GET /reporting/custom/{id}.json`.",
        "operationId": "PATCH_projects_api_v3_reporting_custom_{id}.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.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": "Update a custom report.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/projects/api/v3/reporting/custom/{id}/data.json": {
      "get": {
        "description": "Returns the data rows for the custom report. When `reportFormat` is set, an\nexport (csv, xlsx, pdf, html, googlesheets) is generated instead of the\nJSON response; google sheets exports return a redirect to the spreadsheet.",
        "operationId": "GET_projects_api_v3_reporting_custom_{id}_data.json",
        "parameters": [
          {
            "description": "filter by search term",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "define the format of the report",
            "enum": [
              "html",
              "pdf",
              "xlsx",
              "csv"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "cursor to control the pagination.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "number of decimal places for financial/numeric values in CSV exports.\nRange 0-10; absent means the currency's own decimal places are used.",
            "in": "query",
            "name": "precision",
            "type": "integer"
          },
          {
            "description": "order by column position",
            "in": "query",
            "name": "orderByPosition",
            "type": "integer"
          },
          {
            "default": "100",
            "description": "number of items to show.",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include entity ID in the response",
            "in": "query",
            "name": "includeEntityID",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "filter by custom fields at site level only",
            "in": "query",
            "name": "customFieldsSiteLevelOnly",
            "type": "boolean"
          },
          {
            "default": "all",
            "description": "determine the columns to be included in the report",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "selectedColumns",
            "type": "array"
          },
          {
            "description": "include (not used when generating exports)",
            "in": "query",
            "items": {
              "enum": [
                "customReports",
                "customfields"
              ],
              "type": "string"
            },
            "name": "include",
            "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",
                "baseType",
                "status",
                "name",
                "startAt",
                "lastGeneratedAt",
                "endAt",
                "datePeriod",
                "summary",
                "ownedByUser",
                "createdAt",
                "createdByUser",
                "updatedAt",
                "updatedByUser",
                "deletedAt",
                "deletedByUser",
                "grantAccessTo",
                "columns",
                "customfields",
                "filters",
                "sortByPosition",
                "sortOrder"
              ],
              "type": "string"
            },
            "name": "fields[customReports]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/customreport.DataResponse"
            }
          },
          "302": {
            "description": "302 Found (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"
            }
          },
          "423": {
            "description": "423 Locked",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a custom report's data.",
        "tags": [
          "CustomReports"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
              "id"
            ],
            "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",
              "id"
            ],
            "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",
                "projectUpdates"
              ],
              "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.assignee_jobrole",
              "task.assignee",
              "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",
              "id"
            ],
            "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.assignee_jobrole",
              "task.assignee",
              "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.assignee_jobrole",
                "task.assignee",
                "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",
              "id"
            ],
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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",
              "id"
            ],
            "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",
              "id"
            ],
            "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",
                "projectUpdates"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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 (the drawer behind a chart bucket).",
        "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.assignee_jobrole",
              "task.assignee",
              "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",
              "id"
            ],
            "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.assignee_jobrole",
              "task.assignee",
              "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.assignee_jobrole",
                "task.assignee",
                "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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/download/{reportId}": {
      "get": {
        "description": "Generates the report immediately and returns it as a file download. For\nGoogle Sheets reports the response is a redirect to the spreadsheet URL.",
        "operationId": "GET_projects_api_v3_reporting_download_{reportId}",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/octet-stream",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "302": {
            "description": "302 Found (no data)"
          },
          "400": {
            "description": "400 Bad Request (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "500": {
            "description": "500 Internal Server Error (no data)"
          }
        },
        "summary": "Download a scheduled report on the fly.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/email/unsubscribe/{reportId}": {
      "get": {
        "description": "Endpoint linked from scheduled report emails. Removes the current user\nfrom all future deliveries of the given report and returns an HTML\nconfirmation page.",
        "operationId": "GET_projects_api_v3_reporting_email_unsubscribe_{reportId}",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Unsubscribe via the report email link.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/email/{reportId}": {
      "get": {
        "description": "Returns the rendered HTML email that recipients receive for the given\nscheduled report. Only recipients of the report can preview the email.",
        "operationId": "GET_projects_api_v3_reporting_email_{reportId}",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "400": {
            "description": "400 Bad Request (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the HTML email preview for a scheduled report.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/financial/data.json": {
      "get": {
        "description": "Returns aggregated financial data grouped by the requested dimensions.",
        "operationId": "GET_projects_api_v3_reporting_financial_data.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by matching term against the display names of the requested groupBy dimensions",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "format of the report export; page/pageSize are ignored on exports",
            "enum": [
              "csv",
              "xlsx"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "order by field; for /trends: `name`, `<metricKey>` (full-range aggregate), or\n`<periodIndex>-<metricKey>` (0-based, chronological)",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "date granularity (only when date in groupBy)",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "quarterly",
              "yearly"
            ],
            "in": "query",
            "name": "dateGranularity",
            "type": "string"
          },
          {
            "description": "dimension the averages are computed per; must be one of the dimensions in groupBy.\nDefaults to the first groupBy dimension. `date` => average per period.",
            "enum": [
              "company",
              "project",
              "projecttype",
              "projectbudget",
              "tasklist",
              "tasklistbudget",
              "task",
              "user",
              "jobrole",
              "timelog",
              "allocation",
              "expense",
              "billablerate",
              "costrate",
              "date"
            ],
            "in": "query",
            "name": "averageBy",
            "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": "disables the empty-group filter and adds a row for every live entity of the\ngroupBy grain with no fact activity in range, filters/ACL permitting",
            "in": "query",
            "name": "showEmptyRows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export; also set by requesting the endpoint with a file\nextension (e.g. data.csv) instead of .json",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "bypasses the cache freshness probe and forces re-population (debounced server-side)",
            "in": "query",
            "name": "forceRefresh",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistBudgetIds",
            "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": "filter by project budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectBudgetIds",
            "type": "array"
          },
          {
            "description": "selected fact metrics to include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "metrics",
            "type": "array"
          },
          {
            "description": "filter by job role ids (applies when grouping by jobrole)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "users",
                "teams",
                "tasks",
                "tasklists",
                "projectbudgets",
                "tasklistbudgets",
                "timelogs",
                "allocations",
                "jobRoles",
                "expenses",
                "files",
                "expenseCategories",
                "milestones",
                "taskliststats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "group by dimensions (ordered chain)",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "projecttype",
                "projectbudget",
                "tasklist",
                "tasklistbudget",
                "task",
                "user",
                "jobrole",
                "timelog",
                "allocation",
                "expense",
                "billablerate",
                "costrate",
                "date"
              ],
              "type": "string"
            },
            "name": "groupBy",
            "type": "array"
          },
          {
            "description": "advanced filter (JSON)",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by expense ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expenseIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by allocation ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "allocationIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/analyticengine.AnalyticEngineResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get financial report data.",
        "tags": [
          "AnalyticEngine"
        ]
      }
    },
    "/projects/api/v3/reporting/financial/totals.json": {
      "get": {
        "description": "Returns grand totals across all matching rows without pagination. groupBy is limited to at most\none dimension (e.g. company or date) — the grain for averages and counts; a second dimension is\nrejected with a 400. Use /trends/totals for per-period summaries.",
        "operationId": "GET_projects_api_v3_reporting_financial_totals.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by matching term against the display names of the requested groupBy dimensions",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "format of the report export; page/pageSize are ignored on exports",
            "enum": [
              "csv",
              "xlsx"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "order by field; for /trends: `name`, `<metricKey>` (full-range aggregate), or\n`<periodIndex>-<metricKey>` (0-based, chronological)",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "date granularity (only when date in groupBy)",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "quarterly",
              "yearly"
            ],
            "in": "query",
            "name": "dateGranularity",
            "type": "string"
          },
          {
            "description": "dimension the averages are computed per; must be one of the dimensions in groupBy.\nDefaults to the first groupBy dimension. `date` => average per period.",
            "enum": [
              "company",
              "project",
              "projecttype",
              "projectbudget",
              "tasklist",
              "tasklistbudget",
              "task",
              "user",
              "jobrole",
              "timelog",
              "allocation",
              "expense",
              "billablerate",
              "costrate",
              "date"
            ],
            "in": "query",
            "name": "averageBy",
            "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": "disables the empty-group filter and adds a row for every live entity of the\ngroupBy grain with no fact activity in range, filters/ACL permitting",
            "in": "query",
            "name": "showEmptyRows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export; also set by requesting the endpoint with a file\nextension (e.g. data.csv) instead of .json",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "bypasses the cache freshness probe and forces re-population (debounced server-side)",
            "in": "query",
            "name": "forceRefresh",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistBudgetIds",
            "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": "filter by project budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectBudgetIds",
            "type": "array"
          },
          {
            "description": "selected fact metrics to include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "metrics",
            "type": "array"
          },
          {
            "description": "filter by job role ids (applies when grouping by jobrole)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "users",
                "teams",
                "tasks",
                "tasklists",
                "projectbudgets",
                "tasklistbudgets",
                "timelogs",
                "allocations",
                "jobRoles",
                "expenses",
                "files",
                "expenseCategories",
                "milestones",
                "taskliststats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "group by dimensions (ordered chain)",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "projecttype",
                "projectbudget",
                "tasklist",
                "tasklistbudget",
                "task",
                "user",
                "jobrole",
                "timelog",
                "allocation",
                "expense",
                "billablerate",
                "costrate",
                "date"
              ],
              "type": "string"
            },
            "name": "groupBy",
            "type": "array"
          },
          {
            "description": "advanced filter (JSON)",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by expense ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expenseIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by allocation ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "allocationIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/analyticengine.AnalyticEngineTotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get financial report totals.",
        "tags": [
          "AnalyticEngine"
        ]
      }
    },
    "/projects/api/v3/reporting/financial/trends.json": {
      "get": {
        "description": "Returns metrics over time: the same paged set of entities repeated across each period,\ngap-filled with zeros. The endpoint forces date grouping; pass one or more entity\ndimensions in groupBy (e.g. `company` ⇒ company,date). startDate and endDate are required.\norderBy accepts `name`, `<metricKey>` (aggregated over the range), or\n`<periodIndex>-<metricKey>` (0-based, chronological) to rank by one period's column; the\ncandidate set is always the entities active across the full range.",
        "operationId": "GET_projects_api_v3_reporting_financial_trends.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by matching term against the display names of the requested groupBy dimensions",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "format of the report export; page/pageSize are ignored on exports",
            "enum": [
              "csv",
              "xlsx"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "order by field; for /trends: `name`, `<metricKey>` (full-range aggregate), or\n`<periodIndex>-<metricKey>` (0-based, chronological)",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "date granularity (only when date in groupBy)",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "quarterly",
              "yearly"
            ],
            "in": "query",
            "name": "dateGranularity",
            "type": "string"
          },
          {
            "description": "dimension the averages are computed per; must be one of the dimensions in groupBy.\nDefaults to the first groupBy dimension. `date` => average per period.",
            "enum": [
              "company",
              "project",
              "projecttype",
              "projectbudget",
              "tasklist",
              "tasklistbudget",
              "task",
              "user",
              "jobrole",
              "timelog",
              "allocation",
              "expense",
              "billablerate",
              "costrate",
              "date"
            ],
            "in": "query",
            "name": "averageBy",
            "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": "disables the empty-group filter and adds a row for every live entity of the\ngroupBy grain with no fact activity in range, filters/ACL permitting",
            "in": "query",
            "name": "showEmptyRows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export; also set by requesting the endpoint with a file\nextension (e.g. data.csv) instead of .json",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "bypasses the cache freshness probe and forces re-population (debounced server-side)",
            "in": "query",
            "name": "forceRefresh",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistBudgetIds",
            "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": "filter by project budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectBudgetIds",
            "type": "array"
          },
          {
            "description": "selected fact metrics to include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "metrics",
            "type": "array"
          },
          {
            "description": "filter by job role ids (applies when grouping by jobrole)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "users",
                "teams",
                "tasks",
                "tasklists",
                "projectbudgets",
                "tasklistbudgets",
                "timelogs",
                "allocations",
                "jobRoles",
                "expenses",
                "files",
                "expenseCategories",
                "milestones",
                "taskliststats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "group by dimensions (ordered chain)",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "projecttype",
                "projectbudget",
                "tasklist",
                "tasklistbudget",
                "task",
                "user",
                "jobrole",
                "timelog",
                "allocation",
                "expense",
                "billablerate",
                "costrate",
                "date"
              ],
              "type": "string"
            },
            "name": "groupBy",
            "type": "array"
          },
          {
            "description": "advanced filter (JSON)",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by expense ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expenseIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by allocation ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "allocationIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/analyticengine.AnalyticEngineTrendsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get financial report trends.",
        "tags": [
          "AnalyticEngine"
        ]
      }
    },
    "/projects/api/v3/reporting/financial/trends/totals.json": {
      "get": {
        "description": "The summary rows under /trends. Returns one summary object per period over the whole filtered pool (not page-restricted):\n`totals` (pooled), plus `averages` and `counts` macro-aggregated over the groupBy\ndimension. Forces date grouping; pass exactly one non-date dimension in groupBy, which\nis also used as the implicit averageBy. startDate and endDate are required.",
        "operationId": "GET_projects_api_v3_reporting_financial_trends_totals.json",
        "parameters": [
          {
            "description": "start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by matching term against the display names of the requested groupBy dimensions",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "description": "format of the report export; page/pageSize are ignored on exports",
            "enum": [
              "csv",
              "xlsx"
            ],
            "in": "query",
            "name": "reportFormat",
            "type": "string"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "description": "order by field; for /trends: `name`, `<metricKey>` (full-range aggregate), or\n`<periodIndex>-<metricKey>` (0-based, chronological)",
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "end date",
            "format": "date",
            "in": "query",
            "name": "endDate",
            "type": "string"
          },
          {
            "description": "date granularity (only when date in groupBy)",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "quarterly",
              "yearly"
            ],
            "in": "query",
            "name": "dateGranularity",
            "type": "string"
          },
          {
            "description": "dimension the averages are computed per; must be one of the dimensions in groupBy.\nDefaults to the first groupBy dimension. `date` => average per period.",
            "enum": [
              "company",
              "project",
              "projecttype",
              "projectbudget",
              "tasklist",
              "tasklistbudget",
              "task",
              "user",
              "jobrole",
              "timelog",
              "allocation",
              "expense",
              "billablerate",
              "costrate",
              "date"
            ],
            "in": "query",
            "name": "averageBy",
            "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": "disables the empty-group filter and adds a row for every live entity of the\ngroupBy grain with no fact activity in range, filters/ACL permitting",
            "in": "query",
            "name": "showEmptyRows",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "generate a report export; also set by requesting the endpoint with a file\nextension (e.g. data.csv) instead of .json",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "description": "bypasses the cache freshness probe and forces re-population (debounced server-side)",
            "in": "query",
            "name": "forceRefresh",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tasklistBudgetIds",
            "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": "filter by project budget ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "projectBudgetIds",
            "type": "array"
          },
          {
            "description": "selected fact metrics to include",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "metrics",
            "type": "array"
          },
          {
            "description": "filter by job role ids (applies when grouping by jobrole)",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "jobRoleIds",
            "type": "array"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "companies",
                "projects",
                "users",
                "teams",
                "tasks",
                "tasklists",
                "projectbudgets",
                "tasklistbudgets",
                "timelogs",
                "allocations",
                "jobRoles",
                "expenses",
                "files",
                "expenseCategories",
                "milestones",
                "taskliststats"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "group by dimensions (ordered chain)",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "projecttype",
                "projectbudget",
                "tasklist",
                "tasklistbudget",
                "task",
                "user",
                "jobrole",
                "timelog",
                "allocation",
                "expense",
                "billablerate",
                "costrate",
                "date"
              ],
              "type": "string"
            },
            "name": "groupBy",
            "type": "array"
          },
          {
            "description": "advanced filter (JSON)",
            "in": "query",
            "items": {
              "type": "any"
            },
            "name": "filter",
            "type": "array"
          },
          {
            "description": "filter by expense ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expenseIds",
            "type": "array"
          },
          {
            "description": "filter by company ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "companyIds",
            "type": "array"
          },
          {
            "description": "filter by allocation ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "allocationIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/analyticengine.AnalyticEngineTrendsTotalsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get per-period financial report totals",
        "tags": [
          "AnalyticEngine"
        ]
      }
    },
    "/projects/api/v3/reporting/log/{scheduleId}.json": {
      "get": {
        "description": "Returns the delivery history for a given report schedule, with optional\nside-loaded recipient logs, users, and the upcoming planned occurrence.",
        "operationId": "GET_projects_api_v3_reporting_log_{scheduleId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "scheduleId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "filter by schedule id",
            "in": "query",
            "name": "scheduleId",
            "type": "integer"
          },
          {
            "description": "page size",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "min id",
            "in": "query",
            "name": "minId",
            "type": "integer"
          },
          {
            "description": "max id",
            "in": "query",
            "name": "maxId",
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "recipientLogs",
                "nextOccurrence",
                "users"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/report.ResponseScheduleLog"
            }
          },
          "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 the schedule log for a scheduled report.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/oauth/google/authorize": {
      "get": {
        "description": "Redirects the browser to the Google OAuth consent screen so the user can\nauthorize Teamwork to publish scheduled reports to Google Sheets / Drive.",
        "operationId": "GET_projects_api_v3_reporting_oauth_google_authorize",
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "302": {
            "description": "302 Found (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Start the Google OAuth authorization flow.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/oauth/google/callback": {
      "get": {
        "description": "Public callback URL hosted at `authenticate.teamwork.com`. It validates and\ndecrypts the OAuth `state` and redirects to the customer-domain callback\n(`/reporting/oauth/google/callback-auth`).",
        "operationId": "GET_projects_api_v3_reporting_oauth_google_callback",
        "produces": [
          "application/json",
          "text/html"
        ],
        "responses": {
          "302": {
            "description": "302 Found (no data)"
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Unauthenticated Google OAuth callback.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/oauth/google/callback-auth": {
      "get": {
        "description": "Customer-domain callback that exchanges the OAuth `code` for tokens and\nstores them against the current user. Returns an HTML page that posts the\noutcome back to the opener window and closes itself.",
        "operationId": "GET_projects_api_v3_reporting_oauth_google_callback-auth",
        "produces": [
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "403": {
            "description": "403 Forbidden (no data)"
          },
          "500": {
            "description": "500 Internal Server Error (no data)"
          }
        },
        "summary": "Authenticated Google OAuth callback.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/oauth/google/status.json": {
      "get": {
        "description": "Returns whether the current user has a valid stored Google OAuth token\nthat can be used to publish scheduled reports to Google Sheets / Drive.",
        "operationId": "GET_projects_api_v3_reporting_oauth_google_status.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/report.OAuthStatus"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the Google OAuth status for the current user.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/budget.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget.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",
                "activePages"
              ],
              "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/totals.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget_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",
                "activePages"
              ],
              "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/{type}/{id}.json": {
      "get": {
        "operationId": "GET_projects_api_v3_reporting_precanned_budget_{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",
                "activePages"
              ],
              "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
            "enum": [
              "all",
              "normal",
              "tasklists-template",
              "projects-template",
              "personal",
              "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": [
              "budgetused",
              "categoryname",
              "companyname",
              "creatorname",
              "customfield",
              "datecreated",
              "duedate",
              "health",
              "lastactivity",
              "lastworkedon",
              "mobilespecial",
              "name",
              "namecaseinsensitive",
              "ownercompany",
              "ownername",
              "starred",
              "starredcompanyname",
              "starredfirst",
              "startdate",
              "status",
              "taskcompletion",
              "id"
            ],
            "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": "include budget names and PO numbers in the search",
            "in": "query",
            "name": "searchBudgets",
            "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 tab system status in response",
            "in": "query",
            "name": "includeTabSystemStatus",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate plannedvsactual report in XLSX format",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/reporting/precanned/tasktime.json": {
      "get": {
        "description": "Returns tasks for the precanned task time report, applying the requested filters.",
        "operationId": "GET_projects_api_v3_reporting_precanned_tasktime.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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate a precanned task time report.",
        "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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 only placeholder users",
            "in": "query",
            "name": "onlyPlaceholders",
            "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 people who can be added to a client portal",
            "in": "query",
            "name": "clientPortalEligible",
            "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": "exclude people who have a non-deleted allocation for the given project ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeAllocatedUsersProjectIDs",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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": "user types in the utilization report",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Generate utilization report in XLSX format",
        "tags": [
          "People"
        ]
      }
    },
    "/projects/api/v3/reporting/reportsources.json": {
      "get": {
        "description": "Returns the report sources (i.e. report types) available on this\ninstallation that can be used when creating a scheduled report.",
        "operationId": "GET_projects_api_v3_reporting_reportsources.json",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/report.ResponseReportSources"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "List available report sources.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/send/{scheduleId}.json": {
      "get": {
        "description": "Triggers the schedule identified by `scheduleId` to send the report to its\nrecipients immediately, regardless of its scheduled next occurrence.",
        "operationId": "GET_projects_api_v3_reporting_send_{scheduleId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "scheduleId",
            "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",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Send a scheduled report immediately.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/storage": {
      "get": {
        "description": "Returns a previously generated report file from S3 using an encrypted\n`file` path query parameter. For Google Sheets reports the response is a\nredirect to the spreadsheet URL.",
        "operationId": "GET_projects_api_v3_reporting_storage",
        "produces": [
          "application/json",
          "application/octet-stream",
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "200 OK (no data)"
          },
          "302": {
            "description": "302 Found (no data)"
          },
          "400": {
            "description": "400 Bad Request (no data)"
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "500": {
            "description": "500 Internal Server Error (no data)"
          }
        },
        "summary": "Download a stored report file from S3.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/unsubscribe/{reportId}.json": {
      "get": {
        "description": "Frontend-facing endpoint that allows users without creator permissions to\nremove themselves from all schedules of the given report.",
        "operationId": "GET_projects_api_v3_reporting_unsubscribe_{reportId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "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": "Unsubscribe from a scheduled report.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/projects/api/v3/reporting/views/{type}.json": {
      "get": {
        "description": "Retrieve the reporting views for the given type.",
        "operationId": "GET_projects_api_v3_reporting_views_{type}.json",
        "parameters": [
          {
            "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"
          },
          {
            "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 ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "viewIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/reportingview.ViewsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get all reporting views for a type.",
        "tags": [
          "ReportingViews"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new reporting view for the given type.",
        "operationId": "POST_projects_api_v3_reporting_views_{type}.json",
        "parameters": [
          {
            "in": "body",
            "name": "reportingview.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/reportingview.Request"
            }
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/reportingview.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          },
          "413": {
            "description": "413 Request Entity Too Large",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Create a new reporting view.",
        "tags": [
          "ReportingViews"
        ]
      }
    },
    "/projects/api/v3/reporting/views/{type}/{viewId}.json": {
      "delete": {
        "description": "Delete a reporting view by id for the given type.",
        "operationId": "DELETE_projects_api_v3_reporting_views_{type}_{viewId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "viewId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "type",
            "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 reporting view.",
        "tags": [
          "ReportingViews"
        ]
      },
      "get": {
        "description": "Retrieve a reporting view by id for the given type.",
        "operationId": "GET_projects_api_v3_reporting_views_{type}_{viewId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "viewId",
            "required": true,
            "type": "integer"
          },
          {
            "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"
          },
          {
            "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 ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "viewIds",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/reportingview.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Get a specific reporting view.",
        "tags": [
          "ReportingViews"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Overwrite an existing reporting view for the given type.",
        "operationId": "PATCH_projects_api_v3_reporting_views_{type}_{viewId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "reportingview.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/reportingview.Request"
            }
          },
          {
            "in": "path",
            "name": "viewId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/reportingview.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)"
          },
          "413": {
            "description": "413 Request Entity Too Large",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing reporting view.",
        "tags": [
          "ReportingViews"
        ]
      }
    },
    "/projects/api/v3/reporting/{reportId}.json": {
      "delete": {
        "description": "Deletes the scheduled report identified by `reportId`.",
        "operationId": "DELETE_projects_api_v3_reporting_{reportId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "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": "Delete a scheduled report.",
        "tags": [
          "Reports"
        ]
      },
      "get": {
        "description": "Returns a single scheduled report with its schedules and options. Supports\nside-loading of recipients and creators.",
        "operationId": "GET_projects_api_v3_reporting_{reportId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "reportId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "report id",
            "in": "query",
            "name": "reportId",
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "recipients",
                "creators"
              ],
              "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",
                "description",
                "color",
                "format",
                "sourceId",
                "createdByUserId",
                "userSavedFilterId",
                "schedules",
                "options"
              ],
              "type": "string"
            },
            "name": "fields[reports]",
            "type": "array"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/report.ResponseReport"
            }
          },
          "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 scheduled report by ID.",
        "tags": [
          "Reports"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Applies a partial update to the scheduled report identified by `reportId`,\nits schedules and its options. Returns the updated report.",
        "operationId": "PATCH_projects_api_v3_reporting_{reportId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "report.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/report.Request"
            }
          },
          {
            "in": "path",
            "name": "reportId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/report.ResponseReport"
            }
          },
          "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": "Update a scheduled report.",
        "tags": [
          "Reports"
        ]
      }
    },
    "/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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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",
              "id"
            ],
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing risk.",
        "operationId": "PUT_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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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/search.json": {
      "get": {
        "description": "The search endpoint will return a list of items that match the given query.",
        "operationId": "GET_projects_api_v3_search.json",
        "parameters": [
          {
            "default": "5 years ago",
            "description": "filter by items updated after the given date.",
            "format": "date-time",
            "in": "query",
            "name": "updatedAfter",
            "type": "string"
          },
          {
            "description": "term to search for.",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "date",
            "description": "sets the result ordering.",
            "enum": [
              "relevance",
              "date"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "description": "cursor used for pagination.Using limit to control the number of items. If\nany other filter is modified during the cursor iteration the response will\nfallback to the first page.",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "filter by project id",
            "in": "query",
            "name": "projectId",
            "type": "integer"
          },
          {
            "default": "50",
            "description": "number of items to show when providing the cursor. Values above 500 are\nrejected.",
            "in": "query",
            "maximum": 500,
            "minimum": 1,
            "name": "limit",
            "type": "integer"
          },
          {
            "default": "false",
            "description": "filter by include archived projects.",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include highlighted match fragments for each result in meta.highlights.\nHighlights are only available on standard searches; extended searches and\nother database-backed searches return no highlights.",
            "in": "query",
            "name": "includeHighlights",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include completed items in the response. This will target task, tasklist\nand milestone objects.",
            "in": "query",
            "name": "includeCompletedItems",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by include archived projects.",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "filter by include archived messages.",
            "in": "query",
            "name": "includeArchivedMessages",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "extended search look for items updated more than 5 years ago.",
            "in": "query",
            "name": "extendedSearch",
            "type": "boolean"
          },
          {
            "default": "all",
            "description": "filter by types.",
            "in": "query",
            "items": {
              "enum": [
                "all",
                "projects",
                "tasks",
                "tasklists",
                "milestones",
                "notebooks",
                "messages",
                "links",
                "files",
                "comments",
                "taskcomments",
                "milestonecomments",
                "filecomments",
                "linkcomments",
                "notebookcomments",
                "users",
                "teams",
                "calendarevents",
                "companies",
                "timelogs"
              ],
              "type": "string"
            },
            "name": "types",
            "type": "array"
          },
          {
            "description": "sideload additional data.",
            "in": "query",
            "items": {
              "enum": [
                "projects",
                "tasks",
                "tasklists",
                "milestones",
                "notebooks",
                "messages",
                "links",
                "files",
                "fileversions",
                "comments",
                "users",
                "teams",
                "calendarevents",
                "companies",
                "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",
                "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",
                "teamLogo",
                "teamLogoIcon",
                "teamLogoColor"
              ],
              "type": "string"
            },
            "name": "fields[teams]",
            "type": "array"
          },
          {
            "in": "query",
            "items": {
              "enum": [
                "id",
                "name",
                "dateUpdated",
                "parentTaskId",
                "isPrivate",
                "status",
                "tasklistId",
                "startDate",
                "dueDate",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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",
                "messageId",
                "title"
              ],
              "type": "string"
            },
            "name": "fields[messages]",
            "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"
          },
          {
            "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/search.Response"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Search items in the installation.",
        "tags": [
          "Search"
        ]
      }
    },
    "/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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": [
          {
            "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"
          },
          {
            "in": "path",
            "name": "skillId",
            "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": "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.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 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.StatusesResponse"
            }
          },
          "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 tentative projects",
            "in": "query",
            "name": "includeTentativeProjects",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "only compute and return the completed task counter when true (or when fields[tasks] includes \"complete\")",
            "in": "query",
            "name": "includeCompletedTasks",
            "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",
              "id"
            ],
            "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/taskgroups/{taskgroupId}/tasks.json": {
      "get": {
        "description": "Return multiple tasks belonging to the given taskgroup.\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_taskgroups_{taskgroupId}_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": "taskgroupId",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get a specific taskgroup's tasks.",
        "tags": [
          "Tasks"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Create a new task within the provided taskgroup.",
        "operationId": "POST_projects_api_v3_taskgroups_{taskgroupId}_tasks.json",
        "parameters": [
          {
            "in": "body",
            "name": "task.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/task.Request"
            }
          },
          {
            "in": "path",
            "name": "taskgroupId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Creates a task in a taskgroup.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      }
    },
    "/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",
              "id"
            ],
            "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",
                "defaultTasks.jobRoles",
                "defaultTasks.tags",
                "defaultTasks.changeFollowers",
                "defaultTasks.commentFollowers",
                "defaultTasks.completeFollowers",
                "defaultTasks.lockdowns",
                "defaultTasks.lockdowns.users",
                "defaultTasks.lockdowns.companies",
                "defaultTasks.lockdowns.teams",
                "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",
                "tasklisttaskstats",
                "tasklistBudgets",
                "tasklistBudgets.notifications",
                "tasklistBudgets.notifications.users",
                "tasklistBudgets.notifications.teams",
                "tasklistBudgets.notifications.companies"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "defaultTasks.jobRoles",
                "defaultTasks.tags",
                "defaultTasks.changeFollowers",
                "defaultTasks.commentFollowers",
                "defaultTasks.completeFollowers",
                "defaultTasks.lockdowns",
                "defaultTasks.lockdowns.users",
                "defaultTasks.lockdowns.companies",
                "defaultTasks.lockdowns.teams",
                "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",
                "tasklisttaskstats",
                "tasklistBudgets",
                "tasklistBudgets.notifications",
                "tasklistBudgets.notifications.users",
                "tasklistBudgets.notifications.teams",
                "tasklistBudgets.notifications.companies"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
                "defaultTasks.jobRoles",
                "defaultTasks.tags",
                "defaultTasks.changeFollowers",
                "defaultTasks.commentFollowers",
                "defaultTasks.completeFollowers",
                "defaultTasks.lockdowns",
                "defaultTasks.lockdowns.users",
                "defaultTasks.lockdowns.companies",
                "defaultTasks.lockdowns.teams",
                "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",
                "tasklisttaskstats",
                "tasklistBudgets",
                "tasklistBudgets.notifications",
                "tasklistBudgets.notifications.users",
                "tasklistBudgets.notifications.teams",
                "tasklistBudgets.notifications.companies"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get specific tasklist",
        "tags": [
          "TaskLists"
        ]
      }
    },
    "/projects/api/v3/tasklists/{tasklistId}/project.json": {
      "get": {
        "description": "Returns the project that the given tasklist belongs to.",
        "operationId": "GET_projects_api_v3_tasklists_{tasklistId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a 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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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": [
          {
            "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",
              "nonbillable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by user id (deprecated, use assignedToUserIds)",
            "in": "query",
            "name": "userId",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "tasklistId",
            "required": true,
            "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"
          },
          {
            "description": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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/recurrence/preview": {
      "get": {
        "description": "Exactly one mode must be used: either taskId (uses the task's existing repeat\nsettings) or dueDate + frequency (and optional selectedDays, duration, endsAt,\nmonthlyRepeatType). Combining taskId with dueDate or frequency is an error.\n\nOn an installation that skips weekends the selectedDays frequency drops\nweekend occurrences instead of moving them to a weekday, so a selection made\nup entirely of Saturday and Sunday can never repeat. That returns a 400\ncarrying meta.code \"skipWeekendsExcludesAllSelectedDays\" rather than an empty\nlist. A selection that mixes weekend and weekday days is previewed with only\nthe weekdays that survive.",
        "operationId": "GET_projects_api_v3_tasks_recurrence_preview",
        "parameters": [
          {
            "description": "comma separated list of sequence weekdays (1=Sunday .. 7=Saturday) the task repeats on",
            "in": "query",
            "name": "selectedDays",
            "type": "string"
          },
          {
            "description": "how the monthly repeat type should be interpreted",
            "enum": [
              "weekDay",
              "monthDay",
              "lastDayOfMonth"
            ],
            "in": "query",
            "name": "monthlyRepeatType",
            "type": "string"
          },
          {
            "description": "repeat frequency to use when previewing without an existing task",
            "enum": [
              "daily",
              "weekdays",
              "selectedDays",
              "weekly",
              "everyXDays",
              "everyXDaysWeekday",
              "every2Weeks",
              "every3Weeks",
              "every4Weeks",
              "every5Weeks",
              "every6Weeks",
              "monthly",
              "every2Months",
              "every3Months",
              "every4Months",
              "every6Months",
              "yearly"
            ],
            "in": "query",
            "name": "frequency",
            "type": "string"
          },
          {
            "description": "date after which the sequence stops repeating; must be after dueDate and\ncannot be more than 10 years after dueDate",
            "format": "date",
            "in": "query",
            "name": "endsAt",
            "type": "string"
          },
          {
            "description": "due date to use when previewing without an existing task",
            "format": "date",
            "in": "query",
            "name": "dueDate",
            "type": "string"
          },
          {
            "description": "pagination cursor returned by a previous request",
            "in": "query",
            "name": "cursor",
            "type": "string"
          },
          {
            "description": "preview an existing task's saved repeat settings; cannot be combined with\ndueDate or frequency",
            "in": "query",
            "name": "taskId",
            "type": "integer"
          },
          {
            "default": "25",
            "description": "number of dates to return per page",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "number of days between repeats; must be 1 or greater. Only used by the\neveryXDays and everyXDaysWeekday frequencies, ignored by the others.",
            "in": "query",
            "name": "duration",
            "type": "integer"
          },
          {
            "default": "true",
            "description": "when true (the default) only occurrences from today onwards are returned;\nset to false to anchor the preview on dueDate and include occurrences that\nalready lie in the past",
            "in": "query",
            "name": "onlyFutureDates",
            "type": "boolean"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/task.RecurringPreviewResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Returns a preview list of recurring dates.",
        "tags": [
          "RecurringPreview"
        ]
      }
    },
    "/projects/api/v3/tasks/{id}/reminders.json": {
      "get": {
        "description": "Gets all reminders for a task.",
        "operationId": "GET_projects_api_v3_tasks_{id}_reminders.json",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "include",
            "in": "query",
            "items": {
              "enum": [
                "users",
                "createdBy"
              ],
              "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/reminder.TaskRemindersResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found (no data)"
          }
        },
        "summary": "Gets task reminders",
        "tags": [
          "TaskReminders"
        ]
      }
    },
    "/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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": [
          {
            "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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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.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": "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "429": {
            "description": "429 Too Many Requests",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Update an existing task.",
        "tags": [
          "Tasks"
        ],
        "x-private": true
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing task.",
        "operationId": "PUT_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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "429": {
            "description": "429 Too Many Requests",
            "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": "date",
            "description": "order by",
            "enum": [
              "all",
              "date",
              "project",
              "user",
              "type"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "all",
            "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"
        ]
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Adds a new comment to the given task.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_comments.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "comment.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/comment.Request"
            }
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "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": "Create a comment on a task.",
        "tags": [
          "TaskComments"
        ],
        "x-private": true
      }
    },
    "/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": [
          {
            "description": "filter by custom field value",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "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",
                "users",
                "tasks"
              ],
              "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",
                "activePages"
              ],
              "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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}/project.json": {
      "get": {
        "description": "Returns the project that the given task belongs to.",
        "operationId": "GET_projects_api_v3_tasks_{taskId}_project.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "default": "false",
            "description": "fetch user-specific data such as isStarred and permissions",
            "in": "query",
            "name": "includeProjectUserInfo",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include minimum and maximum start/end dates for the project",
            "in": "query",
            "name": "includeProjectDates",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include custom fields",
            "in": "query",
            "name": "includeCustomFields",
            "type": "boolean"
          },
          {
            "description": "include specific custom fields",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "includeCustomFieldIds",
            "type": "array"
          },
          {
            "description": "include",
            "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",
                "archivedBy",
                "projectEmailDropboxes",
                "workflows",
                "workflows.stages",
                "projecttaskstats"
              ],
              "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",
                "activePages"
              ],
              "type": "string"
            },
            "name": "fields[projects]",
            "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": "Get the parent project for a specific task.",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/reminders.json": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "description": "Creates reminders for a task. Accepts a list of userIds and/or teamIds;\none reminder row is created per resolved user.",
        "operationId": "POST_projects_api_v3_tasks_{taskId}_reminders.json",
        "parameters": [
          {
            "in": "body",
            "name": "reminder.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/reminder.Request"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "201": {
            "description": "201 Created",
            "schema": {
              "$ref": "#/definitions/reminder.TaskRemindersResponse"
            }
          },
          "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": "Add task reminder",
        "tags": [
          "TaskReminders"
        ]
      }
    },
    "/projects/api/v3/tasks/{taskId}/reminders/{reminderId}.json": {
      "delete": {
        "description": "Deletes an existing reminder for a task.",
        "operationId": "DELETE_projects_api_v3_tasks_{taskId}_reminders_{reminderId}.json",
        "parameters": [
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "reminderId",
            "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": "Delete task reminder",
        "tags": [
          "TaskReminders"
        ]
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "description": "Updates an existing reminder for a task.",
        "operationId": "PATCH_projects_api_v3_tasks_{taskId}_reminders_{reminderId}.json",
        "parameters": [
          {
            "in": "body",
            "name": "reminder.Request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/reminder.Request"
            }
          },
          {
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "reminderId",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "schema": {
              "$ref": "#/definitions/reminder.TaskReminderResponse"
            }
          },
          "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": "Update task reminder",
        "tags": [
          "TaskReminders"
        ]
      }
    },
    "/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 have no users assigned. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "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. Team, company and job\nrole assignments are not considered. Prefer assigneeTypes for new\nconsumers",
            "in": "query",
            "name": "onlyAssignedTasks",
            "type": "boolean"
          },
          {
            "description": "only include tasks that have a job role assigned. Prefer assigneeTypes\nfor new consumers",
            "in": "query",
            "name": "onlyAssignedRoleTasks",
            "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 number of email comments for each task",
            "in": "query",
            "name": "includeEmailCommentStats",
            "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"
          },
          {
            "default": "false",
            "description": "hide the task when it is deleted, returning a 404. Only applies to the\nsingle task endpoint, which otherwise returns deleted tasks.",
            "in": "query",
            "name": "hideDeleted",
            "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"
          },
          {
            "description": "exclude tasks that are assigned to the logged-in user (e.g. to show\nonly tasks the user created and delegated to others)",
            "in": "query",
            "name": "excludeAssignedToMe",
            "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 timeblocks for the current user",
            "in": "query",
            "name": "checkForTimeblocks",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 out tasks assigned to any of these user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeResponsiblePartyIds",
            "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 the kind of assignee on the task",
            "in": "query",
            "items": {
              "enum": [
                "user",
                "company",
                "team",
                "jobrole",
                "placeholder",
                "assigned",
                "unassigned"
              ],
              "type": "string"
            },
            "name": "assigneeTypes",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "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": [
          {
            "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",
              "nonbillable"
            ],
            "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"
          },
          {
            "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",
            "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"
          },
          {
            "description": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "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",
              "id"
            ],
            "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.permissions",
                "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "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"
            }
          },
          "500": {
            "description": "500 Internal Server Error",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Request to reopen a time approval.",
        "tags": [
          "TimeApprovals"
        ]
      }
    },
    "/projects/api/v3/time/report.json": {
      "get": {
        "operationId": "GET_projects_api_v3_time_report.json",
        "parameters": [
          {
            "description": "filter by report type",
            "in": "query",
            "name": "type",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term, searches the name of the type selected",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "time",
            "description": "specifies the report type",
            "enum": [
              "time",
              "loggedtime",
              "userloggedtime",
              "projecttime"
            ],
            "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"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort order",
            "enum": [
              "name",
              "loggedtime",
              "billabletime",
              "nonbillabletime",
              "billedtime",
              "budget"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "day",
            "description": "determine how report totals are grouped",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "expandedType",
            "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"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all rows",
            "in": "query",
            "name": "expandAllGroups",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds chart to export",
            "in": "query",
            "name": "addChart",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by timelog tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "timelogTagIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist 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 company/project/task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "user",
                "tasklist",
                "task",
                "team",
                "loggedtime",
                "billabletime",
                "billedtime",
                "nonbillabletime",
                "billablenonbillablesplit",
                "budget",
                "estimatedtime"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "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 category ids\nset to 0 to filter by projects without a category",
            "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": [
                "companies",
                "projects",
                "tasks",
                "tasks.parentTasks",
                "companies",
                "teams",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "expanded-related fields are used when generating reports",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedGroupIds",
            "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/timelog.TimelogsResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time report",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/time/report/totals.json": {
      "get": {
        "operationId": "GET_projects_api_v3_time_report_totals.json",
        "parameters": [
          {
            "description": "filter by report type",
            "in": "query",
            "name": "type",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term, searches the name of the type selected",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "time",
            "description": "specifies the report type",
            "enum": [
              "time",
              "loggedtime",
              "userloggedtime",
              "projecttime"
            ],
            "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"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort order",
            "enum": [
              "name",
              "loggedtime",
              "billabletime",
              "nonbillabletime",
              "billedtime",
              "budget"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "day",
            "description": "determine how report totals are grouped",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "expandedType",
            "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"
          },
          {
            "description": "match all tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all rows",
            "in": "query",
            "name": "expandAllGroups",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds chart to export",
            "in": "query",
            "name": "addChart",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by timelog tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "timelogTagIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist 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 company/project/task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "user",
                "tasklist",
                "task",
                "team",
                "loggedtime",
                "billabletime",
                "billedtime",
                "nonbillabletime",
                "billablenonbillablesplit",
                "budget",
                "estimatedtime"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "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 category ids\nset to 0 to filter by projects without a category",
            "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": [
                "companies",
                "projects",
                "tasks",
                "tasks.parentTasks",
                "companies",
                "teams",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "expanded-related fields are used when generating reports",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedGroupIds",
            "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/view.TimeReportTotals"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time report totals",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/projects/api/v3/time/report/{type}.json": {
      "get": {
        "operationId": "GET_projects_api_v3_time_report_{type}.json",
        "parameters": [
          {
            "description": "filter by report type",
            "in": "query",
            "name": "type",
            "type": "string"
          },
          {
            "description": "filter by start date",
            "format": "date",
            "in": "query",
            "name": "startDate",
            "type": "string"
          },
          {
            "description": "filter by search term, searches the name of the type selected",
            "in": "query",
            "name": "searchTerm",
            "type": "string"
          },
          {
            "default": "time",
            "description": "specifies the report type",
            "enum": [
              "time",
              "loggedtime",
              "userloggedtime",
              "projecttime"
            ],
            "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"
          },
          {
            "default": "asc",
            "description": "order mode",
            "enum": [
              "asc",
              "desc"
            ],
            "in": "query",
            "name": "orderMode",
            "type": "string"
          },
          {
            "default": "name",
            "description": "sort order",
            "enum": [
              "name",
              "loggedtime",
              "billabletime",
              "nonbillabletime",
              "billedtime",
              "budget"
            ],
            "in": "query",
            "name": "orderBy",
            "type": "string"
          },
          {
            "default": "day",
            "description": "determine how report totals are grouped",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "in": "query",
            "name": "expandedType",
            "type": "string"
          },
          {
            "description": "filter by 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"
          },
          {
            "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 tags",
            "in": "query",
            "name": "matchAllTags",
            "type": "boolean"
          },
          {
            "description": "generate a report document",
            "in": "query",
            "name": "isReportDownload",
            "type": "boolean"
          },
          {
            "default": "true",
            "description": "include completed tasks",
            "in": "query",
            "name": "includeCompletedTasks",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "include archived projects",
            "in": "query",
            "name": "includeArchivedProjects",
            "type": "boolean"
          },
          {
            "description": "allow to expand all rows",
            "in": "query",
            "name": "expandAllGroups",
            "type": "boolean"
          },
          {
            "default": "false",
            "description": "adds chart to export",
            "in": "query",
            "name": "addChart",
            "type": "boolean"
          },
          {
            "description": "filter by user ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "userIds",
            "type": "array"
          },
          {
            "description": "filter by timelog tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "timelogTagIds",
            "type": "array"
          },
          {
            "description": "filter by team ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "teamIds",
            "type": "array"
          },
          {
            "description": "filter by tasklist 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 company/project/task tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "tagIds",
            "type": "array"
          },
          {
            "description": "customise the report by selecting columns",
            "in": "query",
            "items": {
              "enum": [
                "company",
                "project",
                "user",
                "tasklist",
                "task",
                "team",
                "loggedtime",
                "billabletime",
                "billedtime",
                "nonbillabletime",
                "billablenonbillablesplit",
                "budget",
                "estimatedtime"
              ],
              "type": "string"
            },
            "name": "selectedColumns",
            "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 category ids\nset to 0 to filter by projects without a category",
            "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": [
                "companies",
                "projects",
                "tasks",
                "tasks.parentTasks",
                "companies",
                "teams",
                "users",
                "projects.companies"
              ],
              "type": "string"
            },
            "name": "include",
            "type": "array"
          },
          {
            "description": "expanded-related fields are used when generating reports",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "expandedGroupIds",
            "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/timelog.ReportResponse"
            }
          },
          "400": {
            "description": "400 Bad Request",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get time report by type",
        "tags": [
          "TimeTracking"
        ]
      }
    },
    "/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",
              "nonbillable"
            ],
            "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"
          },
          {
            "description": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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)"
          },
          "409": {
            "description": "409 Conflict",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Delete an existing timelog.",
        "tags": [
          "TimeTracking"
        ],
        "x-private": true
      },
      "get": {
        "operationId": "GET_projects_api_v3_time_{timelogId}.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",
              "id"
            ],
            "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",
              "nonbillable"
            ],
            "in": "query",
            "name": "billableType",
            "type": "string"
          },
          {
            "description": "filter by the user who updated the timelog",
            "in": "query",
            "name": "updatedBy",
            "type": "integer"
          },
          {
            "in": "path",
            "name": "timelogId",
            "required": true,
            "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": "match all excluded task tags",
            "in": "query",
            "name": "matchAllExcludedTaskTags",
            "type": "boolean"
          },
          {
            "description": "match all excluded project tags",
            "in": "query",
            "name": "matchAllExcludedProjectTags",
            "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"
          },
          {
            "default": "false",
            "description": "include budget allocations",
            "in": "query",
            "name": "budgetAllocations",
            "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",
                "projectBudgets"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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": "exclude tasks with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTaskTagIds",
            "type": "array"
          },
          {
            "description": "exclude projects with these tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeProjectTagIds",
            "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.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 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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "description": "Modify the properties of an existing time entry. Equivalent to the PATCH\nvariant; only fields included in the request body are modified.",
        "operationId": "PUT_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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "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"
          },
          {
            "default": "true",
            "description": "include the session user's pinned rows, which ignore the filters and sort first.\nonly applies when the requested user is the session user",
            "in": "query",
            "name": "includePinnedRows",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "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"
          },
          {
            "default": "true",
            "description": "include the session user's pinned rows, which ignore the filters and sort first.\nonly applies when the requested user is the session user",
            "in": "query",
            "name": "includePinnedRows",
            "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "422": {
            "description": "422 Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          }
        },
        "summary": "Get the totals for the all the user's timesheets.",
        "tags": [
          "Timesheets"
        ]
      }
    },
    "/projects/api/v3/workflows.json": {
      "get": {
        "description": "Returns all workflows. When a project ID is supplied the result is scoped to\nworkflows linked to that project.",
        "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
            }
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "409": {
            "description": "409 Conflict",
            "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",
                "activePages"
              ],
              "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "403": {
            "description": "403 Forbidden",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "404": {
            "description": "404 Not Found",
            "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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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"
            }
          },
          "404": {
            "description": "404 Not Found",
            "schema": {
              "$ref": "#/definitions/view.ErrorResponse"
            }
          },
          "409": {
            "description": "409 Conflict",
            "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": [
          {
            "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"
          },
          {
            "in": "path",
            "name": "stageId",
            "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"
          },
          {
            "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.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 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"
          },
          {
            "default": "true",
            "description": "when set to false, suppresses the entity-update webhook for this request",
            "in": "query",
            "name": "fireWebhook",
            "type": "boolean"
          }
        ],
        "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": "return the workload users as a top-level array instead of nesting them\nunder workload.users, matching the conventional v3 list response shape.",
            "in": "query",
            "name": "returnInArrayFormat",
            "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"
          },
          {
            "default": "false",
            "description": "match all excluded tags",
            "in": "query",
            "name": "matchAllExcludedTags",
            "type": "boolean"
          },
          {
            "description": "also include users with no primary job role (widens jobRoleIds to \"these roles OR no role\")",
            "in": "query",
            "name": "includeUnassignedJobRole",
            "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": "user types in the workload",
            "in": "query",
            "items": {
              "enum": [
                "standard",
                "placeholder"
              ],
              "type": "string"
            },
            "name": "userTypes",
            "type": "array"
          },
          {
            "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",
                "tasks.taskSequences.occurrences",
                "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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",
                "activePages"
              ],
              "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 exclude tag ids",
            "in": "query",
            "items": {
              "type": "integer"
            },
            "name": "excludeTagIds",
            "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",
                "estimateMinutes",
                "accumulatedEstimatedMinutes"
              ],
              "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": "ExchangeRate"
    },
    {
      "name": "CustomItems"
    },
    {
      "name": "CustomItemRecordComments"
    },
    {
      "name": "Dashboards"
    },
    {
      "name": "Features"
    },
    {
      "name": "FileComments"
    },
    {
      "name": "Files"
    },
    {
      "name": "FileVersionComments"
    },
    {
      "name": "Forms"
    },
    {
      "name": "FormsPublic"
    },
    {
      "name": "Importers"
    },
    {
      "name": "Utilization"
    },
    {
      "name": "JobRoles"
    },
    {
      "name": "LinkItems"
    },
    {
      "name": "People"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "MessageReplies"
    },
    {
      "name": "Messages"
    },
    {
      "name": "Milestones"
    },
    {
      "name": "MilestoneComments"
    },
    {
      "name": "Notebooks"
    },
    {
      "name": "NotebookComments"
    },
    {
      "name": "AutoSchedule"
    },
    {
      "name": "AutoSchedule"
    },
    {
      "name": "AutoSchedule"
    },
    {
      "name": "AutoSchedule"
    },
    {
      "name": "AutoSchedule"
    },
    {
      "name": "PricePlans"
    },
    {
      "name": "Categories"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Risks"
    },
    {
      "name": "TaskLists"
    },
    {
      "name": "Workflows"
    },
    {
      "name": "Summary"
    },
    {
      "name": "ProjectUpdates"
    },
    {
      "name": "ProjectHealth"
    },
    {
      "name": "QuoteExportPreferences"
    },
    {
      "name": "QuoteSettings"
    },
    {
      "name": "Reports"
    },
    {
      "name": "CustomReports"
    },
    {
      "name": "Estimation"
    },
    {
      "name": "Timelogs"
    },
    {
      "name": "AnalyticEngine"
    },
    {
      "name": "BudgetReport"
    },
    {
      "name": "Person"
    },
    {
      "name": "ReportingViews"
    },
    {
      "name": "Search"
    },
    {
      "name": "Skills"
    },
    {
      "name": "PeopleStatus"
    },
    {
      "name": "Tags"
    },
    {
      "name": "Tasklists"
    },
    {
      "name": "TaskReminders"
    },
    {
      "name": "TaskComments"
    },
    {
      "name": "RecurringPreview"
    },
    {
      "name": "TimeApprovals"
    },
    {
      "name": "Timesheets"
    },
    {
      "name": "Workload"
    }
  ]
}
