swagger: '2.0'
definitions:
  active.ProjectMetricActive:
    description: ProjectMetricActive contains all the information returned from a active.
    properties:
      value:
        type: integer
    title: ProjectMetricActive
    type: object
  active.Response:
    description: Response contains information about a specific active.
    properties:
      data:
        $ref: '#/definitions/active.ProjectMetricActive'
    title: Response
    type: object
  activity.ActivitiesResponse:
    description: |-
      ActivitiesResponse contains all the information returned when sending a GET
      request to the activity endpoint.
    properties:
      activities:
        items:
          $ref: '#/definitions/activity.Activity'
        type: array
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
    title: ActivitiesResponse
    type: object
  activity.Activity:
    description: Activity represents a view of activity.
    properties:
      activityType:
        type: string
      company:
        $ref: '#/definitions/view.Relationship'
      companyId:
        type: integer
      dateTime:
        type: string
      description:
        type: string
      dueDate:
        type: string
      extraDescription:
        type: string
      forUser:
        $ref: '#/definitions/view.Relationship'
      forUserId:
        type: integer
      forUserName:
        type: string
      id:
        type: integer
      isPrivate:
        type: integer
      item:
        $ref: '#/definitions/view.Relationship'
      itemId:
        type: integer
      itemLink:
        type: string
      latestActivityType:
        type: string
      link:
        type: string
      lockdown:
        $ref: '#/definitions/view.Relationship'
      lockdownId:
        type: integer
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      publicInfo:
        type: string
      type:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: Activity
    type: object
  billable.ProjectMetricBillable:
    description: ProjectMetricBillable contains all the information returned from a billable.
    properties:
      name:
        type: string
      value:
        type: integer
    title: ProjectMetricBillable
    type: object
  billable.ProjectMetricBillablesResponse:
    description: ProjectMetricBillablesResponse contains information about a group of billables.
    properties:
      data:
        items:
          $ref: '#/definitions/billable.ProjectMetricBillable'
        type: array
    title: ProjectMetricBillablesResponse
    type: object
  category.CategoriesResponse:
    description: CategoriesResponse contains information about a group of categories.
    properties:
      projectCategories:
        items:
          $ref: '#/definitions/view.ProjectCategory'
        type: array
      projectCategoryTotals:
        $ref: '#/definitions/view.CategoryTotals'
    title: CategoriesResponse
    type: object
  comment.CommentsResponse:
    description: CommentsResponse contains information about a group of comments.
    properties:
      comments:
        items:
          $ref: '#/definitions/comment.FullComment'
        type: array
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          files:
            additionalProperties:
              $ref: '#/definitions/view.ProjectFileV205'
            type: object
          fileversions:
            additionalProperties:
              $ref: '#/definitions/view.FileversionV205'
            type: object
          links:
            additionalProperties:
              $ref: '#/definitions/view.LinkItem'
            type: object
          milestones:
            additionalProperties:
              $ref: '#/definitions/view.Milestone'
            type: object
          notebooks:
            additionalProperties:
              $ref: '#/definitions/view.Notebook'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
    title: CommentsResponse
    type: object
  comment.FullComment:
    description: FullComment contains the full information for a comment
    properties:
      body:
        type: string
      commentLink:
        type: string
      contentType:
        type: string
      dateDeleted:
        type: string
      dateLastEdited:
        type: string
      deleted:
        type: boolean
      deletedBy:
        type: integer
      deletedByUserId:
        type: integer
      fileCount:
        type: integer
      fileIds:
        items:
          type: integer
        type: array
      files:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      htmlBody:
        type: string
      id:
        type: integer
      installation:
        $ref: '#/definitions/view.Relationship'
      installationId:
        type: integer
      isPrivate:
        type: integer
      lastEditedBy:
        type: integer
      lastEditedByUserId:
        type: integer
      lockdownID:
        type: integer
      meta:
        $ref: '#/definitions/comment.Meta'
      object:
        $ref: '#/definitions/view.Relationship'
      objectId:
        type: integer
      objectType:
        type: string
      peopleNotifiedCount:
        type: integer
      postedBy:
        type: integer
      postedByUserId:
        type: integer
      postedDateTime:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      reactions:
        items:
          $ref: '#/definitions/view.Reaction'
        type: array
      reactionsCount:
        type: integer
    title: FullComment
    type: object
  comment.Meta:
    description: Meta contains metadata for a comment, such as permissions
    properties:
      isRead:
        type: boolean
      permissions:
        $ref: '#/definitions/comment.Permissions'
    title: Meta
    type: object
  comment.Permissions:
    description: Permissions are the permissions the user has for the comment
    properties:
      canDelete:
        type: boolean
      canEdit:
        type: boolean
    title: Permissions
    type: object
  company.CompaniesResponse:
    description: CompaniesResponse contains information about a group of companies.
    properties:
      companies:
        items:
          $ref: '#/definitions/view.Company'
        type: array
      included:
        properties:
          countries:
            additionalProperties:
              $ref: '#/definitions/view.Country'
            type: object
          customfieldCompanies:
            additionalProperties:
              $ref: '#/definitions/view.CustomFieldValueCompany'
            type: object
          customfields:
            additionalProperties:
              $ref: '#/definitions/view.CustomField'
            type: object
          industries:
            additionalProperties:
              $ref: '#/definitions/view.Industry'
            type: object
          tags:
            additionalProperties:
              $ref: '#/definitions/view.Tag'
            type: object
          updates:
            additionalProperties:
              $ref: '#/definitions/view.CompanyUpdate'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      letters:
        items:
          type: string
        type: array
      meta:
        $ref: '#/definitions/view.Meta'
    title: CompaniesResponse
    type: object
  company.Company:
    description: Company contains all the information returned from a company.
    properties:
      addressOne:
        type: string
      addressTwo:
        type: string
      cid:
        type: string
      city:
        type: string
      clientManagedBy:
        type: integer
      countrycode:
        type: string
      customFields:
        $ref: '#/definitions/company.CustomFields'
      emailOne:
        type: string
      emailThree:
        type: string
      emailTwo:
        type: string
      fax:
        type: string
      industryCatId:
        type: integer
      logoPendingFileRef:
        type: string
      name:
        type: string
      phone:
        type: string
      privateNotes:
        type: string
      profile:
        type: string
      state:
        type: string
      tagIds:
        items:
          type: integer
        type: array
      website:
        type: string
      zip:
        type: string
    title: Company
    type: object
  company.CustomFields:
    description: CustomFields is the custom fields type.
    properties:
      Values:
        items:
          $ref: '#/definitions/value.CustomFieldValue'
        type: array
    title: CustomFields
    type: object
  company.Request:
    description: Request contains information of a company to be created or updated.
    properties:
      company:
        $ref: '#/definitions/company.Company'
      companyOptions:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
      tags:
        items:
          $ref: '#/definitions/tag.Tag'
        type: array
    title: Request
    type: object
  company.Response:
    description: Response contains information about a specific company.
    properties:
      company:
        $ref: '#/definitions/view.Company'
      included:
        properties:
          countries:
            additionalProperties:
              $ref: '#/definitions/view.Country'
            type: object
          customfieldCompanies:
            additionalProperties:
              $ref: '#/definitions/view.CustomFieldValueCompany'
            type: object
          customfields:
            additionalProperties:
              $ref: '#/definitions/view.CustomField'
            type: object
          industries:
            additionalProperties:
              $ref: '#/definitions/view.Industry'
            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
    title: Response
    type: object
  complete.Response:
    description: Response contains information about a specific complete.
    properties:
      data:
        $ref: '#/definitions/complete.TaskMetricComplete'
    title: Response
    type: object
  complete.TaskMetricComplete:
    description: TaskMetricComplete contains all the information returned from a complete.
    properties:
      value:
        type: integer
    title: TaskMetricComplete
    type: object
  customfield.BulkDeleteRequest:
    description: |-
      BulkDeleteRequest contains the ids of the custom fields that should be
      removed.
    properties:
      customfieldIds:
        items:
          type: integer
        type: array
    title: BulkDeleteRequest
    type: object
  customfield.CustomField:
    description: CustomField contains all the information returned from a custom field.
    properties:
      currencyCode:
        type: string
      description:
        type: string
      entity:
        description: using a verbose name to avoid conflict
        type: string
      formula:
        type: string
      groupId:
        type: integer
      isPrivate:
        type: boolean
      name:
        type: string
      options: {}
      privacy:
        $ref: '#/definitions/payload.UserGroups'
      projectId:
        type: integer
      required:
        type: boolean
      type:
        type: string
      visibilities:
        items:
          type: string
        type: array
    title: CustomField
    type: object
  customfield.CustomFieldsResponse:
    description: CustomFieldsResponse contains information about a group of custom fields.
    properties:
      customfields:
        items:
          $ref: '#/definitions/view.CustomField'
        type: array
      included:
        properties:
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
    title: CustomFieldsResponse
    type: object
  customfield.Request:
    description: Request contains information of a custom field to be created or updated.
    properties:
      customfield:
        $ref: '#/definitions/customfield.CustomField'
    title: Request
    type: object
  customfield.Response:
    description: Response contains information about a specific customfield.
    properties:
      count:
        type: integer
      customfield:
        $ref: '#/definitions/view.CustomField'
    title: Response
    type: object
  dashboard.UserDashboardsResponse:
    description: UserDashboardsResponse contains information about a group of dashboards.
    properties:
      dashboards:
        items:
          $ref: '#/definitions/view.UserDashboard'
        type: array
      included:
        properties:
          dashboardPanelSettings:
            additionalProperties:
              $ref: '#/definitions/view.UserDashboardPanelSetting'
            type: object
          dashboardPanels:
            additionalProperties:
              $ref: '#/definitions/view.UserDashboardPanel'
            type: object
          dashboardSettings:
            additionalProperties:
              $ref: '#/definitions/view.UserDashboardSetting'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
    title: UserDashboardsResponse
    type: object
  deadline.MilestoneMetricDeadline:
    description: MilestoneMetricDeadline contains all the information returned from a deadline.
    properties:
      date:
        type: string
      value:
        type: integer
    title: MilestoneMetricDeadline
    type: object
  deadline.MilestoneMetricDeadlinesResponse:
    description: MilestoneMetricDeadlinesResponse contains information about a group of deadlines.
    properties:
      data:
        items:
          $ref: '#/definitions/deadline.MilestoneMetricDeadline'
        type: array
    title: MilestoneMetricDeadlinesResponse
    type: object
  entity.ProjectBudgetRange:
    description: ProjectBudgetRange is a distribution item type.
    properties:
      companyId:
        type: integer
      count:
        type: integer
      from:
        type: integer
      to:
        type: integer
    title: ProjectBudgetRange
    type: object
  form.Banner:
    description: Banner contains information of a form banner to be created or updated.
    properties:
      accentColor:
        type: string
      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
      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'
      title:
        type: string
    title: CopyForm
    type: object
  form.CopyRequest:
    description: CopyRequest outter request for copying a form
    properties:
      form:
        $ref: '#/definitions/form.CopyForm'
    title: CopyRequest
    type: object
  form.DestinationObject:
    description: DestinationObject contains information of a form destination object to be created or updated.
    properties:
      id:
        type: integer
      type:
        type: string
    title: DestinationObject
    type: object
  form.Form:
    description: Form contains information of a form to be created or updated.
    properties:
      allowTeamworkBranding:
        type: boolean
      confirmationMessage:
        type: string
      content:
        $ref: '#/definitions/form.Content'
      destinationObject:
        $ref: '#/definitions/form.DestinationObject'
      hostObject:
        $ref: '#/definitions/form.HostObject'
      promptAdditionalSubmissions:
        type: boolean
      redirectUrl:
        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
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
    title: FormsResponse
    type: object
  form.HostObject:
    description: HostObject contains information of a form host object to be created or updated.
    properties:
      id:
        type: integer
      meta:
        $ref: '#/definitions/form.HostObjectMeta'
      type:
        type: string
    title: HostObject
    type: object
  form.HostObjectMeta:
    description: HostObjectMeta contains information of a form host object meta to be created or updated.
    properties:
      tasklistId:
        type: integer
    title: HostObjectMeta
    type: object
  form.Logo:
    description: Logo contains information of a form custom logo to be created or updated.
    properties:
      url:
        type: string
    title: Logo
    type: object
  form.PublicResponse:
    description: PublicResponse contains information about a specific public form.
    properties:
      form:
        $ref: '#/definitions/view.PublicForm'
    title: PublicResponse
    type: object
  form.Request:
    description: Request contains information of a form to be created or updated.
    properties:
      form:
        $ref: '#/definitions/form.Form'
    title: Request
    type: object
  form.Response:
    description: Response contains information about a specific form.
    properties:
      form:
        $ref: '#/definitions/view.Form'
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
    title: Response
    type: object
  health.ProjectMetricHealth:
    description: ProjectMetricHealth stores a specific health counter.
    properties:
      name:
        type: string
      value:
        type: integer
    title: ProjectMetricHealth
    type: object
  health.ProjectMetricHealthsResponse:
    description: |-
      ProjectMetricHealthsResponse contains information about a group of healths.
      Following this format to satisfy the Numerics integration.
    properties:
      data:
        items:
          $ref: '#/definitions/health.ProjectMetricHealth'
        type: array
    title: ProjectMetricHealthsResponse
    type: object
  importer.Importer:
    description: Importer single importer for response.
    properties:
      name:
        type: string
      running:
        type: boolean
      status:
        type: string
    title: Importer
    type: object
  importer.ImportersResponse:
    description: ImportersResponse contains information about a group of importers.
    properties:
      importers:
        items:
          $ref: '#/definitions/importer.Importer'
        type: array
      isImporting:
        type: boolean
    title: ImportersResponse
    type: object
  invoice.ProjectMetricInvoicesResponse:
    description: ProjectMetricInvoicesResponse contains information about a group of invoices.
    properties:
      data:
        properties:
          value:
            type: integer
        type: object
    title: ProjectMetricInvoicesResponse
    type: object
  late.Response:
    description: |-
      Response contains the count of late tasks.
      Following this format to satisfy the Numerics integration.
    properties:
      data:
        $ref: '#/definitions/late.TaskMetricLate'
    title: Response
    type: object
  late.TaskMetricLate:
    description: TaskMetricLate contains count information about late tasks.
    properties:
      value:
        type: integer
    title: TaskMetricLate
    type: object
  message.MessagesResponse:
    description: |-
      MessagesResponse contains all the information returned when sending a GET
      request to the message endpoint.
    properties:
      included:
        properties:
          Included:
            $ref: '#/definitions/messagereply.Included'
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          messageReplies:
            additionalProperties:
              $ref: '#/definitions/view.MessageReply'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      messages:
        items:
          $ref: '#/definitions/view.Message'
        type: array
      meta:
        $ref: '#/definitions/view.Meta'
    title: MessagesResponse
    type: object
  message.Request:
    description: Request contains information of a message to be created or updated.
    properties:
      read:
        type: boolean
    title: Request
    type: object
  message.Response:
    description: Response contains information about a specific message.
    properties:
      included:
        properties:
          Included:
            $ref: '#/definitions/messagereply.Included'
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          messageReplies:
            additionalProperties:
              $ref: '#/definitions/view.MessageReply'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      message:
        $ref: '#/definitions/view.Message'
    title: Response
    type: object
  messagereply.Included:
    description: Included contains sideloadable stuff for message replies.
    properties:
      messages:
        additionalProperties:
          $ref: '#/definitions/view.Message'
        type: object
      tags:
        additionalProperties:
          $ref: '#/definitions/view.Tag'
        type: object
      users:
        additionalProperties:
          $ref: '#/definitions/view.User'
        type: object
    title: Included
    type: object
  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
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tags:
            additionalProperties:
              $ref: '#/definitions/view.Tag'
            type: object
          tasklistTaskStats:
            additionalProperties:
              $ref: '#/definitions/view.TaskStats'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      milestones:
        items:
          $ref: '#/definitions/view.Milestone'
        type: array
    title: MilestonesResponse
    type: object
  milestone.Response:
    description: Response contains information about a milestone.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projectCategories:
            additionalProperties:
              $ref: '#/definitions/view.ProjectCategory'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tags:
            additionalProperties:
              $ref: '#/definitions/view.Tag'
            type: object
          tasklistTaskStats:
            additionalProperties:
              $ref: '#/definitions/view.TaskStats'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      milestone:
        $ref: '#/definitions/view.Milestone'
    title: Response
    type: object
  notebook.Notebook:
    description: Notebook contains all the information returned from a notebook.
    properties:
      categoryId:
        type: integer
      contents:
        type: string
      description:
        type: string
      isFullWidth:
        type: boolean
      isPrivate:
        type: boolean
      locked:
        type: boolean
      name:
        type: string
      newVersion:
        type: boolean
      notify:
        $ref: '#/definitions/payload.Notify'
      notifyCurrentUser:
        type: boolean
      privacy:
        $ref: '#/definitions/payload.UserGroups'
      secureContent:
        type: boolean
      sendDiff:
        type: boolean
      tagIds:
        items:
          type: integer
        type: array
      type:
        type: string
    title: Notebook
    type: object
  notebook.NotebooksResponse:
    description: NotebooksResponse contains information about a group of notebooks.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          notebookCategories:
            additionalProperties:
              $ref: '#/definitions/view.NotebookCategory'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tags:
            additionalProperties:
              $ref: '#/definitions/view.Tag'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      notebooks:
        items:
          $ref: '#/definitions/view.Notebook'
        type: array
    title: NotebooksResponse
    type: object
  notebook.Request:
    description: Request contains information of a notebook to be created or updated.
    properties:
      notebook:
        $ref: '#/definitions/notebook.Notebook'
    title: Request
    type: object
  notebook.Response:
    description: Response contains information about a specific notebook.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          notebookCategories:
            additionalProperties:
              $ref: '#/definitions/view.NotebookCategory'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tags:
            additionalProperties:
              $ref: '#/definitions/view.Tag'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      notebook:
        $ref: '#/definitions/view.Notebook'
    title: Response
    type: object
  notebook.VersionResponse:
    description: VersionResponse contains information about a specifc notebook version
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      version:
        $ref: '#/definitions/view.NotebookVersion'
    title: VersionResponse
    type: object
  notebook.VersionsResponse:
    description: VersionsResponse contains information about a group of notebook versions
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      versions:
        items:
          $ref: '#/definitions/view.NotebookVersion'
        type: array
    title: VersionsResponse
    type: object
  notification.ProjectBudgetNotification:
    description: ProjectBudgetNotification contains all the information returned from a notification.
    properties:
      budgetId:
        type: integer
      capacityThreshold:
        type: number
      companyIds:
        items:
          type: integer
        type: array
      id:
        type: integer
      notificationMedium:
        type: string
      projectId:
        type: integer
      teamIds:
        items:
          type: integer
        type: array
      userIds:
        items:
          type: integer
        type: array
    title: ProjectBudgetNotification
    type: object
  notification.ProjectBudgetRequest:
    description: ProjectBudgetRequest contains information of a notification to be created or updated.
    properties:
      notification:
        $ref: '#/definitions/notification.ProjectBudgetNotification'
    title: ProjectBudgetRequest
    type: object
  notification.Response:
    description: Response contains information about a specific notification.
    properties:
      notification:
        $ref: '#/definitions/view.Notification'
    title: Response
    type: object
  owner.ProjectMetricOwner:
    description: ProjectMetricOwner contains information about a specific owner.
    properties:
      name:
        type: string
      value:
        type: integer
    title: ProjectMetricOwner
    type: object
  owner.ProjectMetricOwnersResponse:
    description: ProjectMetricOwnersResponse contains information about a group of owners.
    properties:
      data:
        items:
          $ref: '#/definitions/owner.ProjectMetricOwner'
        type: array
      meta:
        $ref: '#/definitions/view.Meta'
    title: ProjectMetricOwnersResponse
    type: object
  payload.Date:
    description: 'Date unmarshals represents a Unified API Spec date format.<br /> Format: yyyy-mm-dd'
    title: Date
    type: object
  payload.Notify:
    description: Notify defines the access lists.
    properties:
      ids:
        $ref: '#/definitions/payload.UserGroups'
      type:
        $ref: '#/definitions/payload.NotifyType'
    title: Notify
    type: object
  payload.NotifyType:
    description: |-
      NotifyType implements json.Unmarshaler to allow testing between a value
      that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: string
    title: NotifyType
    type: object
  payload.NullableBool:
    description: |-
      NullableBool implements json.Unmarshaler to allow testing between a value
      that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: boolean
    title: NullableBool
    type: object
  payload.NullableDate:
    description: |-
      NullableDate implements json.Unmarshaler to allow testing between a value
      that explicitly set to null or omitted.
      Date format "2006-01-02"
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        $ref: '#/definitions/payload.Date'
    title: NullableDate
    type: object
  payload.NullableHexColor:
    description: |-
      NullableHexColor implements json.Unmarshaler to allow testing between a value
      that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: string
    title: NullableHexColor
    type: object
  payload.NullableInt64Slice:
    description: |-
      NullableInt64Slice implements json.Unmarshaler to allow testing between a
      value that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        items:
          type: integer
        type: array
    title: NullableInt64Slice
    type: object
  payload.NullableTaskPriority:
    description: |-
      NullableTaskPriority implements json.Unmarshaler to allow testing
      between a value that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: string
    title: NullableTaskPriority
    type: object
  payload.NullableTaskRepeatFrequency:
    description: |-
      NullableTaskRepeatFrequency implements json.Unmarshaler to allow testing
      between a value that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: string
    title: NullableTaskRepeatFrequency
    type: object
  payload.NullableTaskRepeatMonthlyType:
    description: |-
      NullableTaskRepeatMonthlyType implements json.Unmarshaler to allow testing
      between a value that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        type: string
    title: NullableTaskRepeatMonthlyType
    type: object
  payload.NullableWorkingHourEntryWeekdays:
    description: |-
      NullableWorkingHourEntryWeekdays implements json.Unmarshaler to allow testing
      between a value that explicitly set to null or omitted.
    properties:
      'Null':
        type: boolean
      Set:
        type: boolean
      Value:
        items:
          type: string
        type: array
    title: NullableWorkingHourEntryWeekdays
    type: object
  payload.Time:
    description: 'Time unmarshals represents a Unified API Spec date. <br />Format: HH:MM:SS'
    title: Time
    type: object
  payload.UserGroups:
    description: |-
      UserGroups are common lists for storing users, companies and teams ids
      together.
    properties:
      companyIds:
        $ref: '#/definitions/payload.NullableInt64Slice'
      teamIds:
        $ref: '#/definitions/payload.NullableInt64Slice'
      userIds:
        $ref: '#/definitions/payload.NullableInt64Slice'
    title: UserGroups
    type: object
  people.AddPeopleToProjectResponse:
    description: |-
      AddPeopleToProjectResponse contains information about which users were and weren't add to the project as well
      as why the users were not able to be added
    properties:
      info:
        items:
          type: string
        type: array
      teamIds:
        items:
          type: integer
        type: array
      usersAdded:
        items:
          type: integer
        type: array
      usersAlreadyInProject:
        items:
          type: integer
        type: array
      usersNotAdded:
        items:
          type: integer
        type: array
    title: AddPeopleToProjectResponse
    type: object
  people.MultiResponse:
    description: MultiResponse contains information about a group of users.
    properties:
      included:
        properties:
          ProjectPermissions:
            additionalProperties:
              $ref: '#/definitions/view.ProjectPermissions'
            type: object
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          workingHours:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHour'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      people:
        items:
          $ref: '#/definitions/view.User'
        type: array
    title: MultiResponse
    type: object
  people.Response:
    description: Response contains information about a user.
    properties:
      included:
        properties:
          ProjectPermissions:
            additionalProperties:
              $ref: '#/definitions/view.ProjectPermissions'
            type: object
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          workingHours:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHour'
            type: object
        type: object
      person:
        $ref: '#/definitions/view.User'
    title: Response
    type: object
  people.TaskCompletion:
    description: TaskCompletion contains information about tasks completed by a user.
    properties:
      activeProjects:
        type: integer
      assignedTasks:
        type: integer
      completedTasks:
        type: integer
      overdueTasks:
        type: integer
      userId:
        type: integer
    title: TaskCompletion
    type: object
  people.TaskCompletionResponse:
    description: TaskCompletionResponse contains information about tasks completed by a user.
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      taskCompletions:
        $ref: '#/definitions/people.TaskCompletions'
    title: TaskCompletionResponse
    type: object
  people.TaskCompletions:
    description: |-
      TaskCompletions represents a summary row of total computed counts of, plus individual user data
      /reporting/precanned/usertaskcompletions.json endpoint
    properties:
      totalActiveProjects:
        type: integer
      totalAssignedTasks:
        type: integer
      totalCompletedTasks:
        type: integer
      totalOverdueTasks:
        type: integer
      users:
        items:
          $ref: '#/definitions/people.TaskCompletion'
        type: array
    title: TaskCompletions
    type: object
  people.UsersPayload:
    description: UsersPayload consists of userIDs
    properties:
      checkTeamIds:
        items:
          type: integer
        type: array
      userIds:
        items:
          type: integer
        type: array
    title: UsersPayload
    type: object
  performance.PeopleMetricPerformance:
    description: PeopleMetricPerformance contains all the information returned from a performance.
    properties:
      name:
        type: string
      value:
        type: integer
    title: PeopleMetricPerformance
    type: object
  performance.PeopleMetricPerformancesResponse:
    description: PeopleMetricPerformancesResponse contains information about a group of performances.
    properties:
      data:
        items:
          $ref: '#/definitions/performance.PeopleMetricPerformance'
        type: array
    title: PeopleMetricPerformancesResponse
    type: object
  planner.WorkloadPlanner:
    description: WorkloadPlanner contains all the information returned from a planner.
    properties:
      capacities:
        additionalProperties:
          $ref: '#/definitions/planner.WorkloadPlannerCapacity'
        type: object
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: WorkloadPlanner
    type: object
  planner.WorkloadPlannerCapacity:
    description: |-
      WorkloadPlannerCapacity contains the information regarding an user on a
      specific date.
    properties:
      capacity:
        description: percentage
        type: number
      estimateMinutesTotal:
        type: number
      lengthOfDayMinutes:
        type: number
      tasks:
        items:
          $ref: '#/definitions/planner.WorkloadPlannerCapacityTask'
        type: array
    title: WorkloadPlannerCapacity
    type: object
  planner.WorkloadPlannerCapacityTask:
    description: |-
      WorkloadPlannerCapacityTask provides how many minutes should a user work in a
      task for a specific date.
    properties:
      estimateMinutes:
        type: number
      taskId:
        type: integer
    title: WorkloadPlannerCapacityTask
    type: object
  planner.WorkloadPlannersResponse:
    description: WorkloadPlannersResponse contains information about a group of planners.
    properties:
      included:
        properties:
          calendarEvents:
            additionalProperties:
              $ref: '#/definitions/view.LegacyCalendarEvent'
            type: object
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          milestones:
            additionalProperties:
              $ref: '#/definitions/view.Milestone'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
          timelogs:
            additionalProperties:
              $ref: '#/definitions/view.Timelog'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workingHourEntries:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHourEntry'
            type: object
          workingHours:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHour'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      planners:
        items:
          $ref: '#/definitions/planner.WorkloadPlanner'
        type: array
    title: WorkloadPlannersResponse
    type: object
  priceplan.FeaturesResponse:
    description: |-
      FeaturesResponse contains all the information returned when sending a GET
      request to the features endpoint.
    properties:
      features:
        items:
          $ref: '#/definitions/view.Feature'
        type: array
      meta:
        $ref: '#/definitions/view.Meta'
    title: FeaturesResponse
    type: object
  project.FeatureOrder:
    description: |-
      FeatureOrder contains the information of the feature
      order 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
      settings:
        type: integer
      table:
        type: integer
      time:
        type: integer
    title: FeatureOrder
    type: object
  project.FeatureOrderDefaults:
    description: |-
      FeatureOrderDefaults is the payload used to set
      the defaults for all projects feature order, and
      allows to also update the projects that have
      an explicitly set defaults
    properties:
      billing:
        type: integer
      board:
        type: integer
      comments:
        type: integer
      dashboard:
        type: integer
      files:
        type: integer
      finance:
        type: integer
      forms:
        type: integer
      gantt:
        type: integer
      links:
        type: integer
      list:
        type: integer
      messages:
        type: integer
      milestones:
        type: integer
      notebooks:
        type: integer
      numVisibleTabs:
        type: integer
      people:
        type: integer
      proofs:
        type: integer
      risks:
        type: integer
      settings:
        type: integer
      table:
        type: integer
      time:
        type: integer
    title: FeatureOrderDefaults
    type: object
  project.FeatureOrderRequest:
    description: |-
      FeatureOrderRequest is the payload used to set
      the project features order as we want to appear
      in the UI tabs selection
    properties:
      featureOrder:
        $ref: '#/definitions/project.FeatureOrder'
      featureOrderOptions:
        properties:
          useNotifyViaTWIM:
            type: boolean
        type: object
    title: FeatureOrderRequest
    type: object
  project.FeatureOrderResponse:
    description: |-
      FeatureOrderResponse is the api response containing
      information about the order to display the featues in the UI.
    properties:
      featureOrder:
        $ref: '#/definitions/project.FeatureOrder'
    title: FeatureOrderResponse
    type: object
  project.Included:
    description: Included is the task sideloads
    properties:
      activities:
        additionalProperties:
          $ref: '#/definitions/view.ActivityLog'
        type: object
      companies:
        additionalProperties:
          $ref: '#/definitions/view.Company'
        type: object
      countries:
        additionalProperties:
          $ref: '#/definitions/view.Country'
        type: object
      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.SampleProjectsResponse:
    description: SampleProjectsResponse contains information about a group of sample projects.
    properties:
      included:
        properties:
          projectCategories:
            additionalProperties:
              $ref: '#/definitions/view.ProjectCategory'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      projects:
        items:
          $ref: '#/definitions/view.SampleProject'
        type: array
    title: SampleProjectsResponse
    type: object
  project.projectsResponseV205:
    description: projectsResponseV205 contains information about a group of projects.
    properties:
      included:
        $ref: '#/definitions/project.Included'
      meta:
        $ref: '#/definitions/view.Meta'
      projects:
        items:
          $ref: '#/definitions/view.ProjectV205'
        type: array
    title: projectsResponseV205
    type: object
  project.responseV205:
    description: responseV205 contains information about a project.
    properties:
      included:
        $ref: '#/definitions/project.Included'
      meta:
        $ref: '#/definitions/view.Meta'
      project:
        $ref: '#/definitions/view.ProjectV205'
    title: responseV205
    type: object
  risk.RisksResponse:
    description: |-
      RisksResponse contains all the information returned when sending a GET
      request to the risk endpoint.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      risks:
        items:
          $ref: '#/definitions/view.Risk'
        type: array
    title: RisksResponse
    type: object
  stage.BulkAddTasksRequest:
    description: |-
      BulkAddTasksRequest contains the ids of the tasks that should be added to the
      stage.
    properties:
      options:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
      taskIds:
        items:
          type: integer
        type: array
    title: BulkAddTasksRequest
    type: object
  stage.MoveTaskRequest:
    description: |-
      MoveTaskRequest contains the id of the task to be moved and the id of the task after
      to calculate the position
      positionAfterTask: top of list = -1, other = taskId
    properties:
      positionAfterTask:
        type: integer
      stageId:
        type: integer
      taskId:
        type: integer
      workflowId:
        type: integer
    title: MoveTaskRequest
    type: object
  stage.Request:
    description: Request contains information of a stage to be created or updated.
    properties:
      stage:
        $ref: '#/definitions/stage.Stage'
      stageOptions:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
    title: Request
    type: object
  stage.Response:
    description: Response contains information about a specific stage.
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workflows:
            additionalProperties:
              $ref: '#/definitions/view.Workflow'
            type: object
        type: object
      stage:
        $ref: '#/definitions/view.Stage'
    title: Response
    type: object
  stage.Stage:
    description: Stage contains all the information returned from a stage.
    properties:
      color:
        $ref: '#/definitions/payload.NullableHexColor'
      displayOrder:
        type: number
      id:
        type: integer
      name:
        type: string
      positionAfterStage:
        type: integer
      showCompletedTasks:
        $ref: '#/definitions/payload.NullableBool'
      workflowId:
        type: integer
    title: Stage
    type: object
  stage.StagesResponse:
    description: StagesResponse contains information about a group of stages.
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workflows:
            additionalProperties:
              $ref: '#/definitions/view.Workflow'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      stages:
        items:
          $ref: '#/definitions/view.Stage'
        type: array
    title: StagesResponse
    type: object
  status.TimelineResponse:
    description: TimelineResponse contains information about a group of statuses.
    properties:
      included:
        properties:
          userEvents:
            additionalProperties:
              $ref: '#/definitions/view.UserEvents'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      statuses:
        items:
          $ref: '#/definitions/view.Status'
        type: array
    title: TimelineResponse
    type: object
  summary.ColumnCardResponse:
    description: ColumnCardResponse contains counters from column's cards.
    properties:
      active:
        type: integer
      archived:
        type: integer
      completed:
        type: integer
      count:
        type: integer
    title: ColumnCardResponse
    type: object
  summary.ColumnDataResponse:
    description: ColumnDataResponse contains information of a specific column.
    properties:
      cards:
        $ref: '#/definitions/summary.ColumnCardResponse'
      color:
        type: string
      estimatedTime:
        $ref: '#/definitions/summary.ColumnEstimatedResponse'
      id:
        type: integer
      name:
        type: string
    title: ColumnDataResponse
    type: object
  summary.ColumnEstimatedResponse:
    description: |-
      ColumnEstimatedResponse contains estimated counters about the
      columns's state.
    properties:
      active:
        type: integer
      archived:
        type: integer
      completed:
        type: integer
      total:
        type: integer
    title: ColumnEstimatedResponse
    type: object
  summary.ColumnResponse:
    description: ColumnResponse contains counters for columns.
    properties:
      count:
        type: integer
      data:
        items:
          $ref: '#/definitions/summary.ColumnDataResponse'
        type: array
    title: ColumnResponse
    type: object
  summary.EventResponse:
    description: EventResponse contains counters for events.
    properties:
      today:
        type: integer
      upcoming:
        type: integer
    title: EventResponse
    type: object
  summary.HealthResponse:
    description: HealthResponse contains counters for health.
    properties:
      '0':
        type: integer
      '1':
        type: integer
      '2':
        type: integer
      '3':
        type: integer
    title: HealthResponse
    type: object
  summary.MilestoneCountsResponse:
    description: MilestoneCountsResponse contains counters for milestones.
    properties:
      active:
        type: integer
      complete:
        type: integer
      late:
        type: integer
      today:
        type: integer
      upcoming:
        type: integer
    title: MilestoneCountsResponse
    type: object
  summary.MilestoneResponse:
    description: MilestoneResponse contains groups of counter for milestones.
    properties:
      everyone:
        $ref: '#/definitions/summary.MilestoneCountsResponse'
      mine:
        $ref: '#/definitions/summary.MilestoneCountsResponse'
    title: MilestoneResponse
    type: object
  summary.ProjectResponse:
    description: |-
      ProjectResponse contains all the information returned when sending
      a GET request to the summary endpoint (project).
    properties:
      columns:
        $ref: '#/definitions/summary.ColumnResponse'
      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'
      tasks:
        $ref: '#/definitions/summary.ProjectTasksResponse'
      time:
        $ref: '#/definitions/summary.TimeResponse'
      unread:
        $ref: '#/definitions/summary.UnreadResponse'
    title: ProjectResponse
    type: object
  summary.ProjectTasksResponse:
    description: ProjectTasksResponse contains groups of counters tasks.
    properties:
      everyone:
        $ref: '#/definitions/summary.TaskResponse'
      mine:
        $ref: '#/definitions/summary.TaskResponse'
      user:
        $ref: '#/definitions/summary.TaskResponse'
    title: ProjectTasksResponse
    type: object
  summary.Response:
    description: |-
      Response contains all the information returned when sending a GET
      request to the summary endpoint (dashboard).
    properties:
      columns:
        $ref: '#/definitions/summary.ColumnResponse'
      events:
        $ref: '#/definitions/summary.EventResponse'
      health:
        $ref: '#/definitions/summary.HealthResponse'
      milestones:
        $ref: '#/definitions/summary.MilestoneCountsResponse'
      risks:
        $ref: '#/definitions/summary.RiskResponse'
      since:
        $ref: '#/definitions/summary.SinceResponse'
      tasks:
        $ref: '#/definitions/summary.TaskResponse'
      time:
        $ref: '#/definitions/summary.TimeCounterResponse'
      unread:
        $ref: '#/definitions/summary.UnreadResponse'
    title: Response
    type: object
  summary.RiskResponse:
    description: RiskResponse contains counters for risks.
    properties:
      closed:
        type: integer
      open:
        type: integer
      pending:
        type: integer
      total:
        type: integer
    title: RiskResponse
    type: object
  summary.SinceResponse:
    description: SinceResponse contains counters for since.
    properties:
      dateTime:
        type: string
      events:
        type: integer
      tasksComplete:
        type: integer
      tasksCreated:
        type: integer
    title: SinceResponse
    type: object
  summary.TaskResponse:
    description: TaskResponse contains counters for tasks.
    properties:
      active:
        type: integer
      complete:
        type: integer
      late:
        type: integer
      nodate:
        type: integer
      started:
        type: integer
      today:
        type: integer
      upcoming:
        type: integer
    title: TaskResponse
    type: object
  summary.TimeCounterEstimateResponse:
    description: TimeCounterEstimateResponse contains estimate counters for times.
    properties:
      activeMinsEstimated:
        type: integer
      completedMinsEstimated:
        type: integer
      totalMinsEstimated:
        type: integer
      totalWithTimeLoggedEstimatedMins:
        type: integer
    title: TimeCounterEstimateResponse
    type: object
  summary.TimeCounterResponse:
    description: TimeCounterResponse contains counters for times.
    properties:
      estimates:
        $ref: '#/definitions/summary.TimeCounterEstimateResponse'
      totals:
        $ref: '#/definitions/summary.TimeCounterTotalResponse'
    title: TimeCounterResponse
    type: object
  summary.TimeCounterTotalResponse:
    description: TimeCounterTotalResponse contains total counters for times.
    properties:
      billableMinsSum:
        type: integer
      billedMinsSum:
        type: integer
      nonBillableMinsSum:
        type: integer
      nonBilledMinsSum:
        type: integer
      totalMinsSum:
        type: integer
    title: TimeCounterTotalResponse
    type: object
  summary.TimeResponse:
    description: TimeResponse contains counters for times' groups.
    properties:
      all:
        $ref: '#/definitions/summary.TimeCounterResponse'
      mine:
        $ref: '#/definitions/summary.TimeCounterResponse'
    title: TimeResponse
    type: object
  summary.UnreadResponse:
    description: UnreadResponse contains counters for unread objects.
    properties:
      comments:
        type: integer
      messages:
        type: integer
    title: UnreadResponse
    type: object
  tag.BulkDeleteRequest:
    description: BulkDeleteRequest contains the ids of the tags that should be removed.
    properties:
      tagIds:
        items:
          type: integer
        type: array
      tagNames:
        items:
          type: string
        type: array
    title: BulkDeleteRequest
    type: object
  tag.Request:
    description: Request contains information of a tag to be created or updated.
    properties:
      tag:
        $ref: '#/definitions/tag.Tag'
    title: Request
    type: object
  tag.Response:
    description: Response contains information about a specific tag.
    properties:
      tag:
        $ref: '#/definitions/view.Tag'
    title: Response
    type: object
  tag.Tag:
    description: Tag contains all the information returned from a tag.
    properties:
      color:
        type: string
      name:
        type: string
      projectId:
        type: integer
    title: Tag
    type: object
  tag.TagsResponse:
    description: TagsResponse contains information about a group of tags.
    properties:
      included:
        properties:
          cards:
            additionalProperties:
              $ref: '#/definitions/view.TaskCard'
            type: object
          columns:
            additionalProperties:
              $ref: '#/definitions/view.BoardColumn'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      tags:
        items:
          $ref: '#/definitions/view.Tag'
        type: array
    title: TagsResponse
    type: object
  task.Card:
    description: Card stores information about the card created with the task.
    properties:
      columnId:
        type: integer
    title: Card
    type: object
  task.CustomFields:
    description: CustomFields is the custom fields type.
    properties:
      Values:
        items:
          $ref: '#/definitions/value.CustomFieldValue'
        type: array
    title: CustomFields
    type: object
  task.File:
    description: File stores information about a uploaded file.
    properties:
      categoryId:
        type: integer
      id:
        type: integer
    title: File
    type: object
  task.Included:
    description: Included is the task sideloads
    properties:
      cards:
        additionalProperties:
          $ref: '#/definitions/view.TaskCard'
        type: object
      columns:
        additionalProperties:
          $ref: '#/definitions/view.BoardColumn'
        type: object
      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
      lockdowns:
        additionalProperties:
          $ref: '#/definitions/view.Lockdown'
        type: object
      milestones:
        additionalProperties:
          $ref: '#/definitions/view.Milestone'
        type: object
      projectCategories:
        additionalProperties:
          $ref: '#/definitions/view.ProjectCategory'
        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
      for the task request
    properties:
      appendAssignees:
        type: boolean
      checkInvalidusers:
        type: boolean
      everyoneMustDo:
        type: boolean
      fireWebhook:
        type: boolean
      isTemplate:
        type: boolean
      logActivity:
        type: boolean
      notify:
        type: boolean
      parseInlineTags:
        type: boolean
      positionAfterTaskId:
        type: integer
      pushDependents:
        type: boolean
      pushSubtasks:
        type: boolean
      shiftProjectDates:
        type: boolean
      useDefaults:
        type: boolean
      useNotifyViaTWIM:
        type: boolean
    title: Options
    type: object
  task.PendingFile:
    description: PendingFile stores information about a file uploaded on-the-fly.
    properties:
      categoryId:
        type: integer
      reference:
        type: string
    title: PendingFile
    type: object
  task.Predecessor:
    description: Predecessor stores information about task predecessors.
    properties:
      id:
        type: integer
      type:
        type: string
    title: Predecessor
    type: object
  task.Reminder:
    description: Reminder stores all necessary information to create a task reminder.
    properties:
      isRelative:
        type: boolean
      note:
        type: string
      relativeNumberDays:
        type: integer
      remindAt:
        type: string
      type:
        type: string
      userId:
        type: integer
    title: Reminder
    type: object
  task.RepeatOptions:
    description: RepeatOptions stores recurring information for the task.
    properties:
      duration:
        type: integer
      editOption:
        type: string
      endsAt:
        $ref: '#/definitions/payload.NullableDate'
      frequency:
        $ref: '#/definitions/payload.NullableTaskRepeatFrequency'
      monthlyRepeatType:
        $ref: '#/definitions/payload.NullableTaskRepeatMonthlyType'
      rrule:
        description: Adds the RRule definition for repeating tasks. It replaces all other repeating fields.
        title: RRule
        type: string
      selectedDays:
        $ref: '#/definitions/payload.NullableWorkingHourEntryWeekdays'
    title: RepeatOptions
    type: object
  task.Request:
    description: Request contains information of a task to be created or updated.
    properties:
      attachmentOptions:
        properties:
          removeOtherFiles:
            type: boolean
        type: object
      attachments:
        properties:
          files:
            items:
              $ref: '#/definitions/task.File'
            type: array
          pendingFiles:
            items:
              $ref: '#/definitions/task.PendingFile'
            type: array
        type: object
      card:
        $ref: '#/definitions/task.Card'
      predecessors:
        items:
          $ref: '#/definitions/task.Predecessor'
        type: array
      tags:
        items:
          $ref: '#/definitions/tag.Tag'
        type: array
      task:
        $ref: '#/definitions/task.Task'
      taskOptions:
        $ref: '#/definitions/task.Options'
      workflows:
        $ref: '#/definitions/task.Workflows'
    title: Request
    type: object
  task.Task:
    description: Task contains all the information returned from a task.
    properties:
      assignees:
        $ref: '#/definitions/payload.UserGroups'
      attachmentIds:
        items:
          type: integer
        type: array
      changeFollowers:
        $ref: '#/definitions/payload.UserGroups'
      commentFollowers:
        $ref: '#/definitions/payload.UserGroups'
      completedAt:
        type: string
      completedBy:
        type: integer
      createdAt:
        type: string
      createdBy:
        type: integer
      crmDealIds:
        items:
          type: integer
        type: array
      customFields:
        $ref: '#/definitions/task.CustomFields'
      description:
        type: string
      descriptionContentType:
        type: string
      dueAt:
        $ref: '#/definitions/payload.NullableDate'
      estimatedMinutes:
        type: integer
      grantAccessTo:
        $ref: '#/definitions/payload.UserGroups'
      hasDeskTickets:
        type: boolean
      name:
        type: string
      originalDueDate:
        $ref: '#/definitions/payload.NullableDate'
      parentTaskId:
        type: integer
      priority:
        $ref: '#/definitions/payload.NullableTaskPriority'
      private:
        type: boolean
      progress:
        type: integer
      reminders:
        items:
          $ref: '#/definitions/task.Reminder'
        type: array
      repeatOptions:
        $ref: '#/definitions/task.RepeatOptions'
      startAt:
        $ref: '#/definitions/payload.NullableDate'
      status:
        type: string
      tagIds:
        items:
          type: integer
        type: array
      taskgroupId:
        type: integer
      tasklistId:
        type: integer
      templateRoleName:
        type: string
      ticketId:
        type: integer
    title: Task
    type: object
  task.Workflows:
    description: Workflows stores information about where the task lives in the workflow
    properties:
      positionAfterTask:
        type: integer
      stageId:
        type: integer
      workflowId:
        type: integer
    title: Workflows
    type: object
  task.responseV205:
    properties:
      affected:
        $ref: '#/definitions/view.TaskAffectedV205'
      included:
        $ref: '#/definitions/task.Included'
      meta:
        $ref: '#/definitions/view.Meta'
      task:
        $ref: '#/definitions/view.TaskV205'
    title: responseV205
    type: object
  task.tasksResponseV205:
    properties:
      included:
        $ref: '#/definitions/task.Included'
      meta:
        $ref: '#/definitions/view.Meta'
      tasks:
        items:
          $ref: '#/definitions/view.TaskV205'
        type: array
    title: tasksResponseV205
    type: object
  tasklist.Response:
    description: Response contains information about a specific tasklist.
    properties:
      included:
        properties:
          columns:
            additionalProperties:
              $ref: '#/definitions/view.BoardColumn'
            type: object
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          customfieldTasks:
            additionalProperties:
              $ref: '#/definitions/view.CustomFieldValueTask'
            type: object
          customfields:
            additionalProperties:
              $ref: '#/definitions/view.CustomField'
            type: object
          defaultTaskReminders:
            additionalProperties:
              $ref: '#/definitions/view.TaskReminder'
            type: object
          lockdowns:
            additionalProperties:
              $ref: '#/definitions/view.Lockdown'
            type: object
          milestones:
            additionalProperties:
              $ref: '#/definitions/view.Milestone'
            type: object
          notifications:
            additionalProperties:
              $ref: '#/definitions/view.TasklistBudgetNotification'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.IncludedProject'
            type: object
          tasklistBudgets:
            additionalProperties:
              $ref: '#/definitions/view.TasklistBudget'
            type: object
          tasklistTaskStats:
            additionalProperties:
              $ref: '#/definitions/view.TaskStats'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.IncludedTask'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workflowStages:
            additionalProperties:
              $ref: '#/definitions/view.Stage'
            type: object
        type: object
      tasklist:
        $ref: '#/definitions/view.Tasklist'
    title: Response
    type: object
  tasklist.TasklistsResponse:
    description: TasklistsResponse contains information about a group of tasklists.
    properties:
      included:
        properties:
          columns:
            additionalProperties:
              $ref: '#/definitions/view.BoardColumn'
            type: object
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          customfieldTasks:
            additionalProperties:
              $ref: '#/definitions/view.CustomFieldValueTask'
            type: object
          customfields:
            additionalProperties:
              $ref: '#/definitions/view.CustomField'
            type: object
          defaultTaskReminders:
            additionalProperties:
              $ref: '#/definitions/view.TaskReminder'
            type: object
          lockdowns:
            additionalProperties:
              $ref: '#/definitions/view.Lockdown'
            type: object
          milestones:
            additionalProperties:
              $ref: '#/definitions/view.Milestone'
            type: object
          notifications:
            additionalProperties:
              $ref: '#/definitions/view.TasklistBudgetNotification'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.IncludedProject'
            type: object
          tasklistBudgets:
            additionalProperties:
              $ref: '#/definitions/view.TasklistBudget'
            type: object
          tasklistTaskStats:
            additionalProperties:
              $ref: '#/definitions/view.TaskStats'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.IncludedTask'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workflowStages:
            additionalProperties:
              $ref: '#/definitions/view.Stage'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      tasklists:
        items:
          $ref: '#/definitions/view.Tasklist'
        type: array
    title: TasklistsResponse
    type: object
  tasklistbudget.Budget:
    description: Budget contains all the information returned from a budget.
    properties:
      capacity:
        type: integer
      id:
        type: integer
      notifications:
        items:
          $ref: '#/definitions/tasklistbudget.notification'
        type: array
      tasklist:
        $ref: '#/definitions/tasklistbudget.tasklist'
    title: Budget
    type: object
  tasklistbudget.BudgetResponse:
    description: BudgetResponse contains information about a group of budgets.
    properties:
      meta:
        $ref: '#/definitions/view.Meta'
      tasklistBudget:
        $ref: '#/definitions/view.TasklistBudget'
    title: BudgetResponse
    type: object
  tasklistbudget.BudgetsResponse:
    description: BudgetsResponse contains information about a group of budgets.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          notifications:
            additionalProperties:
              $ref: '#/definitions/view.TasklistBudgetNotification'
            type: object
          projectBudgets:
            additionalProperties:
              $ref: '#/definitions/view.ProjectBudget'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      tasklistBudgets:
        items:
          $ref: '#/definitions/view.TasklistBudget'
        type: array
    title: BudgetsResponse
    type: object
  tasklistbudget.BulkAddBudgetRequest:
    description: |-
      BulkAddBudgetRequest structure hold information needed to add
      or update task list budgets along with request options
    properties:
      tasklistBudgets:
        items:
          $ref: '#/definitions/tasklistbudget.Budget'
        type: array
      tasklistBudgetsOptions:
        $ref: '#/definitions/tasklistbudget.RequestOptions'
    title: BulkAddBudgetRequest
    type: object
  tasklistbudget.PatchBudgetRequest:
    description: PatchBudgetRequest Structure for the edit budget PATCH request
    properties:
      tasklistBudget:
        $ref: '#/definitions/tasklistbudget.Budget'
      tasklistBudgetOptions:
        $ref: '#/definitions/tasklistbudget.RequestOptions'
    title: PatchBudgetRequest
    type: object
  tasklistbudget.RequestOptions:
    description: RequestOptions has options for events related to requests
    properties:
      fireWebhook:
        type: boolean
      logActivity:
        type: boolean
      useNotifyViaTWIM:
        type: boolean
    title: RequestOptions
    type: object
  tasklistbudget.company:
    properties:
      id:
        type: integer
      type:
        type: string
    title: company
    type: object
  tasklistbudget.notification:
    properties:
      capacityThreshold:
        type: number
      companies:
        items:
          $ref: '#/definitions/tasklistbudget.company'
        type: array
      id:
        type: integer
      notificationMedium:
        type: string
      teams:
        items:
          $ref: '#/definitions/tasklistbudget.team'
        type: array
      users:
        items:
          $ref: '#/definitions/tasklistbudget.user'
        type: array
    title: notification
    type: object
  tasklistbudget.tasklist:
    properties:
      id:
        type: integer
      type:
        type: string
    title: tasklist
    type: object
  tasklistbudget.team:
    properties:
      id:
        type: integer
      type:
        type: string
    title: team
    type: object
  tasklistbudget.user:
    properties:
      id:
        type: integer
      type:
        type: string
    title: user
    type: object
  timelog.CompanyTimelogsResponse:
    description: CompanyTimelogsResponse contains information about a group of timelogs, grouped by company ID.
    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
          userRates:
            additionalProperties:
              $ref: '#/definitions/view.EffectiveUserRate'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      timelogs:
        type: object
    title: CompanyTimelogsResponse
    type: object
  timelog.Request:
    description: Request contains information of a timelog to be created or updated.
    properties:
      tags:
        items:
          $ref: '#/definitions/tag.Tag'
        type: array
      timelog:
        $ref: '#/definitions/timelog.Timelog'
      timelogOptions:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          markTaskComplete:
            type: boolean
          parseInlineTags:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
    title: Request
    type: object
  timelog.Response:
    description: Response contains information about a specific timelog.
    properties:
      included:
        properties:
          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
          userRates:
            additionalProperties:
              $ref: '#/definitions/view.EffectiveUserRate'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      timelog:
        $ref: '#/definitions/view.Timelog'
    title: Response
    type: object
  timelog.Timelog:
    description: Timelog contains all the information returned from a timelog.
    properties:
      date:
        $ref: '#/definitions/payload.Date'
      description:
        type: string
      hasStartTime:
        type: boolean
      hours:
        type: integer
      invoiceId:
        type: integer
      isBillable:
        type: boolean
      isUtc:
        type: boolean
      minutes:
        type: integer
      projectId:
        type: integer
      tagIds:
        items:
          type: integer
        type: array
      taskId:
        type: integer
      ticketId:
        type: integer
      time:
        $ref: '#/definitions/payload.Time'
      userId:
        type: integer
    title: Timelog
    type: object
  timelog.TimelogsResponse:
    description: TimelogsResponse contains information about a group of timelogs.
    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
          userRates:
            additionalProperties:
              $ref: '#/definitions/view.EffectiveUserRate'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      timelogs:
        items:
          $ref: '#/definitions/view.Timelog'
        type: array
    title: TimelogsResponse
    type: object
  timelog.TotalsResponse:
    description: TotalsResponse contains information about timelog totals.
    properties:
      subTasks:
        $ref: '#/definitions/view.TimelogTotalsSubtasks'
      time-totals:
        $ref: '#/definitions/view.TimelogTotals'
    title: TotalsResponse
    type: object
  timer.DeleteRequest:
    description: |-
      DeleteRequest contains the whether or not a timer should be hard deleted
      or soft deleted. Hard delete will remove the timer row from the DB and
      remove its timer intervals. Soft delete will just mark it as deleted.
    properties:
      hardDelete:
        type: boolean
    title: DeleteRequest
    type: object
  timer.Request:
    description: Request contains information of a timer to be created or updated.
    properties:
      timer:
        $ref: '#/definitions/timer.Timer'
    title: Request
    type: object
  timer.Response:
    description: |-
      Response contains the information returned when sending a PUT/POST
      request to the timers endpoint, or GET request for a single item by ID
    properties:
      included:
        properties:
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          tasklists:
            additionalProperties:
              $ref: '#/definitions/view.Tasklist'
            type: object
          tasks:
            additionalProperties:
              $ref: '#/definitions/view.TaskV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      timer:
        $ref: '#/definitions/view.Timer'
    title: Response
    type: object
  timer.Timer:
    description: Timer contains all the information returned from a timer.
    properties:
      description:
        type: string
      isBillable:
        type: boolean
      isRunning:
        type: boolean
      projectId:
        type: integer
      seconds:
        description: only valid for POST requests
        type: integer
      stopRunningTimers:
        type: boolean
      taskId:
        type: integer
    title: Timer
    type: object
  timer.TimersResponse:
    description: |-
      TimersResponse contains all the information returned when sending a GET
      request to the timers endpoint.
    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
      meta:
        $ref: '#/definitions/view.Meta'
      timers:
        items:
          $ref: '#/definitions/view.Timer'
        type: array
    title: TimersResponse
    type: object
  timesheet.MyTimesheetsResponse:
    description: MyTimesheetsResponse contains timesheets list, includes and metadata.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          eventTypes:
            additionalProperties:
              $ref: '#/definitions/view.LegacyCalendarEventType'
            type: object
          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
          timesheetCustomRows:
            additionalProperties:
              $ref: '#/definitions/view.TimesheetCustomRow'
            type: object
          unavailableTimes:
            additionalProperties:
              $ref: '#/definitions/view.LegacyUnavailableTime'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
          workingHourEntries:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHourEntry'
            type: object
          workingHours:
            additionalProperties:
              $ref: '#/definitions/view.WorkingHour'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      timesheets:
        items:
          $ref: '#/definitions/view.MyTimesheet'
        type: array
      unavailableTimes:
        $ref: '#/definitions/view.UnavailableTimes'
    title: MyTimesheetsResponse
    type: object
  timesheet.MyTimesheetsTotals:
    description: MyTimesheetsTotals contains the daily totals and total minutes
    properties:
      dailyTotals:
        type: object
      total:
        type: integer
    title: MyTimesheetsTotals
    type: object
  timesheet.MyTimesheetsTotalsResponse:
    description: MyTimesheetsTotalsResponse contains timesheets list, includes and metadata.
    properties:
      myTimesheetsTotals:
        $ref: '#/definitions/timesheet.MyTimesheetsTotals'
    title: MyTimesheetsTotalsResponse
    type: object
  unbilled.ProjectMetricUnbilledResponse:
    description: |-
      ProjectMetricUnbilledResponse contains information about a group of unbilled
      invoices.
    properties:
      data:
        properties:
          value:
            type: integer
        type: object
    title: ProjectMetricUnbilledResponse
    type: object
  update.ProjectUpdatesResponse:
    description: ProjectUpdatesResponse contains information about a group of updates.
    properties:
      included:
        properties:
          projects:
            additionalProperties:
              $ref: '#/definitions/view.ProjectV205'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      projectUpdates:
        items:
          $ref: '#/definitions/view.ProjectUpdate'
        type: array
    title: ProjectUpdatesResponse
    type: object
  utilization.Response:
    description: Response contains information about a specific availability.
    properties:
      included:
        properties:
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      utilization:
        items:
          $ref: '#/definitions/view.UserUtilization'
        type: array
    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: {}
    title: CustomFieldValue
    type: object
  value.EditCustomFieldValue:
    description: |-
      EditCustomFieldValue contains all the information to update a project
      custom field value.
    properties:
      countryCode:
        type: string
      currencySymbol:
        type: string
      customfieldId:
        type: integer
      id:
        type: integer
      urlTextToDisplay:
        type: string
      value: {}
    title: EditCustomFieldValue
    type: object
  value.ResponseIncluded:
    description: ResponseIncluded is included in the response.
    properties:
      companies:
        additionalProperties:
          $ref: '#/definitions/view.Company'
        type: object
      customfields:
        additionalProperties:
          $ref: '#/definitions/view.CustomField'
        type: object
      projects:
        additionalProperties:
          $ref: '#/definitions/view.ProjectV205'
        type: object
      tasks:
        additionalProperties:
          $ref: '#/definitions/view.TaskV205'
        type: object
    title: ResponseIncluded
    type: object
  value.bulkDeleteRequestCompany:
    properties:
      customfieldCompanyIds:
        items:
          type: integer
        type: array
    title: bulkDeleteRequestCompany
    type: object
  value.bulkDeleteRequestProject:
    properties:
      customfieldProjectIds:
        items:
          type: integer
        type: array
    title: bulkDeleteRequestProject
    type: object
  value.bulkDeleteRequestTask:
    properties:
      customfieldTaskIds:
        items:
          type: integer
        type: array
    title: bulkDeleteRequestTask
    type: object
  value.bulkUpdateRequestCompany:
    properties:
      customfieldCompanies:
        items:
          $ref: '#/definitions/value.EditCustomFieldValue'
        type: array
    title: bulkUpdateRequestCompany
    type: object
  value.bulkUpdateRequestProject:
    properties:
      customfieldProjects:
        items:
          $ref: '#/definitions/value.EditCustomFieldValue'
        type: array
    title: bulkUpdateRequestProject
    type: object
  value.bulkUpdateRequestTask:
    properties:
      customfieldTasks:
        items:
          $ref: '#/definitions/value.EditCustomFieldValue'
        type: array
    title: bulkUpdateRequestTask
    type: object
  value.requestCompany:
    properties:
      customfieldCompany:
        $ref: '#/definitions/value.CustomFieldValue'
    title: requestCompany
    type: object
  value.requestProject:
    properties:
      customfieldProject:
        $ref: '#/definitions/value.CustomFieldValue'
    title: requestProject
    type: object
  value.requestTask:
    properties:
      customfieldTask:
        $ref: '#/definitions/value.CustomFieldValue'
    title: requestTask
    type: object
  value.responseCompany:
    properties:
      customfieldCompany:
        $ref: '#/definitions/view.CustomFieldValueCompany'
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: responseCompany
    type: object
  value.responseProject:
    properties:
      customfieldProject:
        $ref: '#/definitions/view.CustomFieldValueProject'
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: responseProject
    type: object
  value.responseTask:
    properties:
      customfieldTask:
        $ref: '#/definitions/view.CustomFieldValueTask'
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: responseTask
    type: object
  value.valuesResponseCompany:
    properties:
      customfieldCompanies:
        items:
          $ref: '#/definitions/view.CustomFieldValueCompany'
        type: array
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: valuesResponseCompany
    type: object
  value.valuesResponseProject:
    properties:
      customfieldProjects:
        items:
          $ref: '#/definitions/view.CustomFieldValueProject'
        type: array
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: valuesResponseProject
    type: object
  value.valuesResponseTask:
    properties:
      customfieldTasks:
        items:
          $ref: '#/definitions/view.CustomFieldValueTask'
        type: array
      included:
        $ref: '#/definitions/value.ResponseIncluded'
      meta:
        $ref: '#/definitions/view.Meta'
    title: valuesResponseTask
    type: object
  view.ActivityLog:
    description: ActivityLog contains all the information returned from a activityLog.
    properties:
      datetime:
        type: string
      description:
        type: string
      extraDescription:
        type: string
      id:
        type: integer
      itemLink:
        type: string
      itemType:
        type: string
      latestType:
        type: string
      link:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
    title: ActivityLog
    type: object
  view.Assignee:
    description: Assignee contains assignee information.
    properties:
      decision:
        type: string
      id:
        type: integer
      isExternal:
        type: boolean
      role:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
    title: Assignee
    type: object
  view.Audit:
    description: Audit represents the changes of a field.
    properties:
      after: {}
      before: {}
      field:
        type: string
    title: Audit
    type: object
  view.Banner:
    description: Banner contains all the information returned from a form banner.
    properties:
      accentColor:
        type: string
      primaryColor:
        type: string
      url:
        type: string
      x:
        type: number
      'y':
        type: number
    title: Banner
    type: object
  view.BoardColumn:
    description: BoardColumn contains all the information returned from a column.
    properties:
      color:
        type: string
      createdAt:
        type: string
      defaultTasklist:
        $ref: '#/definitions/view.Relationship'
      deleted:
        type: boolean
      deletedAt:
        type: string
      displayOrder:
        type: integer
      hasTriggers:
        type: boolean
      id:
        type: integer
      name:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      settings:
        $ref: '#/definitions/view.BoardColumnSettings'
      sort:
        type: string
      sortOrder:
        type: string
      stats:
        $ref: '#/definitions/view.ColumnStats'
      updatedAt:
        type: string
    title: BoardColumn
    type: object
  view.BoardColumnSettings:
    description: BoardColumnSettings contains all the settings for a column.
    properties:
      assignee:
        type: boolean
      avatar:
        type: boolean
      comments:
        type: boolean
      dependencies:
        type: boolean
      endAt:
        type: boolean
      estimatedtime:
        type: boolean
      files:
        type: boolean
      followers:
        type: boolean
      name:
        type: boolean
      priority:
        type: boolean
      private:
        type: boolean
      progress:
        type: boolean
      recurring:
        type: boolean
      reminders:
        type: boolean
      startAt:
        type: boolean
      subtasklabel:
        type: boolean
      subtasktext:
        type: boolean
      tags:
        type: boolean
      tasklist:
        type: boolean
      tickets:
        type: boolean
      time:
        type: boolean
    title: BoardColumnSettings
    type: object
  view.CategoryTotals:
    description: CategoryTotals contains all the category totals.
    properties:
      categorizedItems:
        type: integer
      uncategorizedItems:
        type: integer
    title: CategoryTotals
    type: object
  view.ColumnStats:
    description: ColumnStats contains stats about a column
    properties:
      active:
        type: integer
      completed:
        type: integer
      estimatedTime:
        type: integer
      total:
        type: integer
    title: ColumnStats
    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
      title:
        type: string
    title: Comment
    type: object
  view.Company:
    description: Company contains all the information returned from a company.
    properties:
      accounts:
        type: integer
      addressOne:
        type: string
      addressTwo:
        type: string
      budgetDistribution:
        items:
          $ref: '#/definitions/entity.ProjectBudgetRange'
        type: array
      canSeePrivate:
        type: boolean
      cid:
        type: string
      city:
        type: string
      clientManagedBy:
        $ref: '#/definitions/view.Relationship'
      clients:
        type: integer
      collaborators:
        type: integer
      companyNameUrl:
        type: string
      companyUpdate:
        $ref: '#/definitions/view.Relationship'
      contacts:
        type: integer
      countryCode:
        type: string
      createdAt:
        type: string
      emailOne:
        type: string
      emailThree:
        type: string
      emailTwo:
        type: string
      fax:
        type: string
      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'
      state:
        type: string
      stats:
        $ref: '#/definitions/view.CompanyStats'
      status:
        type: string
      tags:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      updatedAt:
        type: string
      website:
        type: string
      zip:
        type: string
    title: Company
    type: object
  view.CompanyStats:
    description: CompanyStats tracks a companies project and task counts
    properties:
      projectCount:
        type: integer
      taskCompleteCount:
        type: integer
      taskCount:
        type: integer
      unreadEmailCount:
        type: integer
    title: CompanyStats
    type: object
  view.CompanyUpdate:
    description: CompanyUpdate represents a company update
    properties:
      active:
        type: boolean
      company:
        $ref: '#/definitions/view.Relationship'
      health:
        type: integer
      id:
        type: integer
      text:
        type: string
    title: CompanyUpdate
    type: object
  view.Content:
    description: Content contains all the information returned from a form token.
    properties:
      banner:
        $ref: '#/definitions/view.Banner'
      definition:
        type: string
      description:
        type: string
      logo:
        $ref: '#/definitions/view.Logo'
      name:
        type: string
      state:
        type: string
      version:
        type: integer
    title: Content
    type: object
  view.Country:
    description: Country represents all the information returned from a country.
    properties:
      code:
        type: string
      country:
        type: string
      eu:
        type: boolean
      phoneCode:
        type: string
      vatName:
        type: string
      vatPercent:
        type: integer
    title: Country
    type: object
  view.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: {}
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      required:
        type: boolean
      type:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
      updatedByUserId:
        type: integer
      visibilities:
        items:
          type: string
        type: array
    title: CustomField
    type: object
  view.CustomFieldValueCompany:
    description: CustomFieldValueCompany is a company custom field value.
    properties:
      company:
        $ref: '#/definitions/view.Relationship'
      companyId:
        type: integer
      countryCode:
        type: string
      createdAt:
        type: string
      createdBy:
        type: integer
      currencySymbol:
        type: string
      customfield:
        $ref: '#/definitions/view.Relationship'
      customfieldId:
        type: integer
      id:
        type: integer
      urlTextToDisplay:
        type: string
      value: {}
    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: {}
    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: {}
    title: CustomFieldValueTask
    type: object
  view.Date:
    description: Date represents a Unified API Spec date format.
    title: Date
    type: object
  view.EffectiveUserRate:
    description: EffectiveUserRate is the users effective rate
    properties:
      effectiveRate:
        type: integer
      user:
        $ref: '#/definitions/view.Relationship'
    title: EffectiveUserRate
    type: object
  view.Error:
    description: Error describes an API error.
    properties:
      code:
        description: Code is an application-specific error code.
        type: string
      detail:
        description: |-
          Detail is a human-readable explanation specific to this occurrence of the
          problem.
        type: string
      id:
        description: ID is a reference for this exact instance of the error.
        type: string
      meta:
        description: Meta contains tags that are useful to detect specific issues.
        type: object
      title:
        description: Title is a short, human-readable summary of the problem.
        type: string
    title: Error
    type: object
  view.ErrorResponse:
    description: ErrorResponse defines how []Error should be marshaled to JSON.
    properties:
      errors:
        items:
          $ref: '#/definitions/view.Error'
        type: array
    title: ErrorResponse
    type: object
  view.Feature:
    description: Feature contains all the information returned from a feature.
    properties:
      endAt:
        type: string
      isBeta:
        type: boolean
      key:
        type: string
      scope:
        type: string
      source:
        type: string
      startAt:
        type: string
      value:
        type: string
    title: Feature
    type: object
  view.FileversionV205:
    description: FileversionV205 contains all the information returned from a fileversion.
    properties:
      commentsCount:
        type: integer
      commentsCountRead:
        type: integer
      description:
        type: string
      displayName:
        type: string
      file:
        $ref: '#/definitions/view.Relationship'
      fileId:
        type: integer
      fileVersionId:
        type: integer
      name:
        type: string
      originalName:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      reactions:
        $ref: '#/definitions/view.ReactionsForObject'
      size:
        type: integer
      status:
        type: string
      uploadedAt:
        type: string
      uploadedBy:
        type: integer
      versionNo:
        type: integer
    title: FileversionV205
    type: object
  view.Form:
    description: Form contains all the information returned from a form.
    properties:
      allowTeamworkBranding:
        type: boolean
      confirmationMessage:
        type: string
      content:
        $ref: '#/definitions/view.Content'
      createdAt:
        type: string
      createdBy:
        $ref: '#/definitions/view.Relationship'
      deletedAt:
        type: string
      deletedBy:
        $ref: '#/definitions/view.Relationship'
      destinationObject:
        $ref: '#/definitions/view.Relationship'
      hostObject:
        $ref: '#/definitions/view.Relationship'
      id:
        type: integer
      installation:
        $ref: '#/definitions/view.Relationship'
      isShared:
        type: boolean
      promptAdditionalSubmissions:
        type: boolean
      redirectUrl:
        type: string
      state:
        type: string
      taskTitleFieldId:
        type: string
      token:
        $ref: '#/definitions/view.Token'
      totalSubmissions:
        type: integer
      updatedAt:
        type: string
      updatedBy:
        $ref: '#/definitions/view.Relationship'
    title: Form
    type: object
  view.IncludedProject:
    description: IncludedProject is a sideloaded project
    title: IncludedProject
    type: object
  view.IncludedTask:
    description: IncludedTask is a sideloaded task.
    title: IncludedTask
    type: object
  view.Industry:
    description: Industry contains all the information returned from an industry.
    properties:
      displayOrder:
        type: integer
      id:
        type: integer
      industryCategory:
        $ref: '#/definitions/view.Relationship'
      industryCategoryId:
        type: integer
      isActive:
        type: boolean
      isPublished:
        type: boolean
      name:
        type: string
    title: Industry
    type: object
  view.LegacyCalendarEvent:
    description: LegacyCalendarEvent contains all the information returned from a calendar event.
    properties:
      additionalProperties:
        type: string
      allDay:
        type: boolean
      attendeesCanEdit:
        type: boolean
      attendingUserIds:
        items:
          type: integer
        type: array
      attendingUsers:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      createdAt:
        type: string
      createdBy:
        type: integer
      createdByUserId:
        type: integer
      createdDateTime:
        type: string
      currentUserAssociationType:
        type: string
      dateDeleted:
        type: string
      dateLastUpdated:
        type: string
      deleted:
        type: boolean
      deletedAt:
        type: string
      deletedBy:
        type: integer
      deletedByUserId:
        type: integer
      description:
        type: string
      endDate:
        type: string
      id:
        type: integer
      location:
        type: string
      monthlyRepeatType:
        type: string
      ownedBy:
        type: integer
      ownerUserId:
        type: integer
      privacyType:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      projectUsersCanEdit:
        type: boolean
      sequence:
        $ref: '#/definitions/view.Relationship'
      sequenceId:
        type: integer
      showAsBusy:
        type: boolean
      startDate:
        type: string
      title:
        type: string
      type:
        $ref: '#/definitions/view.Relationship'
      typeId:
        type: integer
      updatedAt:
        type: string
      updatedBy:
        type: integer
      updatedByUserId:
        type: integer
    title: LegacyCalendarEvent
    type: object
  view.LegacyCalendarEventType:
    description: |-
      LegacyCalendarEventType contains all the information returned from a calendar event
      type.
    properties:
      color:
        type: string
      id:
        type: integer
      name:
        type: string
      unavailable:
        type: boolean
    title: LegacyCalendarEventType
    type: object
  view.LegacyUnavailableTime:
    description: |-
      LegacyUnavailableTime contains all the information returned for an unavailable
      time.
    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:
        $ref: '#/definitions/view.Date'
      hoursPerDay:
        type: number
      id:
        type: integer
      meta:
        type: object
      ownedBy:
        type: integer
      startDate:
        $ref: '#/definitions/view.Date'
      title:
        type: string
      type:
        $ref: '#/definitions/view.Relationship'
      updatedAt:
        type: string
      updatedBy:
        type: integer
    title: LegacyUnavailableTime
    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
      title:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
      width:
        type: integer
    title: LinkItem
    type: object
  view.Lockdown:
    description: Lockdown contains all the information returned from a lockdown.
    properties:
      grantAccessTo:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      id:
        type: integer
      items:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      updatedAt:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userID:
        type: integer
    title: Lockdown
    type: object
  view.Logo:
    description: Logo contains all the information returned from a form custom logo.
    properties:
      url:
        type: string
    title: Logo
    type: object
  view.Message:
    description: Message contains all the information returned from a project message.
    properties:
      attachments:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      author:
        $ref: '#/definitions/view.Relationship'
      body:
        type: string
      createdAt:
        type: string
      id:
        type: integer
      lockdown:
        $ref: '#/definitions/view.Relationship'
      message:
        $ref: '#/definitions/view.Relationship'
      meta:
        $ref: '#/definitions/view.MessageReplyMeta'
      peopleNotifiedCount:
        type: integer
      projectId:
        type: integer
      status:
        type: string
      title:
        type: string
      updatedAt:
        type: string
    title: Message
    type: object
  view.MessageReply:
    description: MessageReply contains all the information returned from a project message.
    properties:
      attachments:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      author:
        $ref: '#/definitions/view.Relationship'
      body:
        type: string
      createdAt:
        type: string
      id:
        type: integer
      message:
        $ref: '#/definitions/view.Relationship'
      meta:
        $ref: '#/definitions/view.MessageReplyMeta'
      peopleNotifiedCount:
        type: integer
      status:
        type: string
      updatedAt:
        type: string
    title: MessageReply
    type: object
  view.MessageReplyMeta:
    description: MessageReplyMeta is the message reply meta.
    properties:
      isRead:
        type: boolean
      permissions:
        properties:
          canEdit:
            type: boolean
        type: object
    title: MessageReplyMeta
    type: object
  view.Meta:
    description: Meta represents the Unified API meta object.
    properties:
      averageSpend:
        type: integer
      limit:
        type: integer
      nextCursor:
        type: string
      page:
        $ref: '#/definitions/view.MetaPage'
      prevCursor:
        type: string
      totalCapacity:
        type: integer
    title: Meta
    type: object
  view.MetaPage:
    description: MetaPage represents the Unified API page meta object.
    properties:
      count:
        type: integer
      hasMore:
        type: boolean
      pageOffset:
        type: integer
      pageSize:
        type: integer
    title: MetaPage
    type: object
  view.Milestone:
    description: Milestone contains all the information returned from a milestone.
    properties:
      canComplete:
        type: boolean
      canEdit:
        description: permissions
        type: boolean
      changeFollowerIds:
        items:
          type: integer
        type: array
      changeFollowers:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      commentFollowerIds:
        items:
          type: integer
        type: array
      commentFollowers:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      commentsCount:
        type: integer
      completed:
        type: boolean
      completedBy:
        type: integer
      completedOn:
        type: string
      completerId:
        type: integer
      createdBy:
        type: integer
      createdOn:
        type: string
      creatorUserId:
        type: integer
      deadline:
        type: string
      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
    title: Milestone
    type: object
  view.MyTimesheet:
    description: MyTimesheet contains api response information for a timesheet
    properties:
      customRow:
        $ref: '#/definitions/view.Relationship'
      dates:
        additionalProperties:
          $ref: '#/definitions/view.MyTimesheetDateSummary'
        type: object
      entity:
        $ref: '#/definitions/view.Relationship'
      isCustomRow:
        type: boolean
      total:
        type: integer
    title: MyTimesheet
    type: object
  view.MyTimesheetDateSummary:
    description: MyTimesheetDateSummary contains total minutes and timelog ids for a date
    properties:
      timelogs:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      totalMinutes:
        type: integer
    title: MyTimesheetDateSummary
    type: object
  view.Notebook:
    description: Notebook contains all the information returned from a notebook.
    properties:
      category:
        $ref: '#/definitions/view.Relationship'
      categoryId:
        type: integer
      changeFollowers:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      commentFollowers:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      commentsCount:
        type: integer
      contentHTML:
        type: string
      contents:
        description: can be optionally hidden on lists
        type: string
      createdAt:
        type: string
      createdBy:
        type: integer
      createdByUserID:
        type: integer
      dateCreated:
        type: string
      dateDeleted:
        type: string
      dateUpdated:
        type: string
      deleted:
        type: boolean
      deletedAt:
        type: string
      deletedBy:
        type: integer
      deletedByUserID:
        type: integer
      description:
        type: string
      id:
        type: integer
      isFullWidth:
        type: boolean
      isPrivate:
        type: boolean
      latestVersionNo:
        type: integer
      lockdown:
        $ref: '#/definitions/view.Relationship'
      lockdownId:
        type: integer
      locked:
        type: boolean
      lockedAt:
        type: string
      lockedBy:
        type: integer
      name:
        type: string
      notebookVersion:
        $ref: '#/definitions/view.Relationship'
      notebookVersionCreatedDateTime:
        type: string
      notebookVersionID:
        type: integer
      notebookVersionUpdatedDateTime:
        type: string
      privacy:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      readCommentsCount:
        type: integer
      secureContent:
        type: boolean
      tagIds:
        items:
          type: integer
        type: array
      tags:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      type:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
      updatedByUserID:
        type: integer
      userFollowingChanges:
        type: boolean
      userFollowingComments:
        type: boolean
      versionCount:
        type: integer
    title: Notebook
    type: object
  view.NotebookCategory:
    description: NotebookCategory contains all the information returned from a notebook category.
    properties:
      color:
        type: string
      elementsCount:
        type: integer
      id:
        type: integer
      name:
        type: string
      parent:
        $ref: '#/definitions/view.Relationship'
      parentId:
        type: integer
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
    title: NotebookCategory
    type: object
  view.NotebookVersion:
    description: NotebookVersion contains all the information returned from a notebook version.
    properties:
      contentHTML:
        type: string
      contents:
        type: string
      createdAt:
        type: string
      createdBy:
        type: integer
      createdByUserID:
        type: integer
      dateCreated:
        type: string
      dateUpdated:
        type: string
      notebook:
        $ref: '#/definitions/view.Relationship'
      notebookId:
        type: integer
      updatedAt:
        type: string
      versionId:
        type: integer
      versionNumber:
        type: integer
    title: NotebookVersion
    type: object
  view.Notification:
    description: Notification contains all the information returned from a notification.
    properties:
      action:
        type: string
      command:
        type: string
      date:
        type: string
      description:
        type: string
      event:
        type: string
      extraDescription:
        type: string
      extraInfo:
        type: string
      extraLink:
        type: string
      id:
        type: integer
      installation:
        $ref: '#/definitions/view.Relationship'
      item:
        $ref: '#/definitions/view.NotificationItem'
      link:
        type: string
      popUp:
        type: boolean
      privacy:
        $ref: '#/definitions/view.NotificationPrivacy'
      project:
        $ref: '#/definitions/view.NotificationProject'
      read:
        type: boolean
      user:
        $ref: '#/definitions/view.NotificationUser'
    title: Notification
    type: object
  view.NotificationItem:
    description: NotificationItem contains the id and type being of what is being notified
    properties:
      id:
        type: integer
      type:
        type: string
    title: NotificationItem
    type: object
  view.NotificationPrivacy:
    description: NotificationPrivacy contains if the notification links to a private item
    properties:
      lockdownId:
        type: integer
      private:
        type: boolean
    title: NotificationPrivacy
    type: object
  view.NotificationProject:
    description: NotificationProject contains the project ID & and name of the associated notification
    properties:
      id:
        type: integer
      name:
        type: string
    title: NotificationProject
    type: object
  view.NotificationUser:
    description: NotificationUser contains the user information for the notification
    properties:
      avatar_url:
        type: string
      firstname:
        type: string
      id:
        type: integer
      lastname:
        type: string
    title: NotificationUser
    type: object
  view.PortfolioBoard:
    description: PortfolioBoard contains all the information returned from a portfolio board.
    properties:
      color:
        type: string
      id:
        type: integer
      name:
        type: string
    title: PortfolioBoard
    type: object
  view.PortfolioCard:
    description: |-
      PortfolioCard contains all the information returned from a portfolio
      column.
    properties:
      board:
        $ref: '#/definitions/view.Relationship'
      boardId:
        type: integer
      column:
        $ref: '#/definitions/view.Relationship'
      columnId:
        type: integer
      id:
        type: integer
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
    title: PortfolioCard
    type: object
  view.PortfolioColumn:
    description: |-
      PortfolioColumn contains all the information returned from a portfolio
      column.
    properties:
      color:
        type: string
      id:
        type: integer
      name:
        type: string
    title: PortfolioColumn
    type: object
  view.ProfitDetails:
    description: ProfitDetails represents the totals.
    properties:
      billable:
        type: number
      billableTime:
        type: integer
      cost:
        type: number
      expenses:
        type: number
      loggedTime:
        type: integer
      nonBillableTime:
        type: integer
      profit:
        type: number
    title: ProfitDetails
    type: object
  view.ProjectBudget:
    description: ProjectBudget contains all the information returned from a budget.
    properties:
      baselineCapacity:
        type: integer
      budgetCategory:
        type: string
      budgetExpectedCost:
        type: integer
      budgetExpectedProfit:
        type: integer
      budgetProfitMargin:
        type: number
      capacity:
        type: integer
      capacityUsed:
        type: integer
      carryCapacity:
        type: integer
      carryOverspend:
        type: boolean
      carryUnderspend:
        type: boolean
      completedAt:
        type: string
      completedBy:
        type: integer
      completedByUserId:
        type: integer
      createdAt:
        type: string
      createdBy:
        type: integer
      createdByUserId:
        type: integer
      currencyCode:
        type: string
      dateCompleted:
        type: string
      dateCreated:
        type: string
      dateDeleted:
        type: string
      dateUpdated:
        type: string
      defaultRate:
        type: number
      deletedAt:
        type: string
      deletedBy:
        type: integer
      deletedByUserId:
        type: integer
      endDateTime:
        type: string
      expenseType:
        type: string
      id:
        type: integer
      isRepeating:
        type: boolean
      isRetainer:
        type: boolean
      notificationIds:
        items:
          type: integer
        type: array
      notifications:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      originatorBudget:
        $ref: '#/definitions/view.Relationship'
      originatorBudgetId:
        type: integer
      originatorStartDateTime:
        type: string
      overspendAt:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      repeatPeriod:
        type: integer
      repeatUnit:
        type: string
      repeatsRemaining:
        type: integer
      sequenceNumber:
        type: integer
      startDateTime:
        type: string
      status:
        type: string
      timelogType:
        type: string
      type:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
      updatedByUserId:
        type: integer
    title: ProjectBudget
    type: object
  view.ProjectCategory:
    description: |-
      ProjectCategory contains all the information returned from a project
      category.
    properties:
      color:
        type: string
      count:
        type: integer
      id:
        type: integer
      name:
        type: string
      parent:
        $ref: '#/definitions/view.Relationship'
      parentId:
        type: integer
    title: ProjectCategory
    type: object
  view.ProjectEmailDropbox:
    description: |-
      ProjectEmailDropbox contains all the information returned from a file
      category.
    properties:
      id:
        type: integer
      itemCode:
        type: string
      itemEmail:
        type: string
      itemType:
        type: string
      parent:
        $ref: '#/definitions/view.Relationship'
      project:
        $ref: '#/definitions/view.Relationship'
      projectCode:
        type: string
      projectEmails:
        $ref: '#/definitions/view.ProjectEmails'
    title: ProjectEmailDropbox
    type: object
  view.ProjectEmails:
    description: ProjectEmails is the project emails.
    properties:
      files:
        type: string
      links:
        type: string
      messages:
        type: string
      notebooks:
        type: string
      tasks:
        type: string
    title: ProjectEmails
    type: object
  view.ProjectFileV205:
    description: ProjectFileV205 contains all the information returned from a file.
    properties:
      category:
        $ref: '#/definitions/view.Relationship'
      categoryId:
        type: integer
      changeFollowers:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      commentFollowers:
        $ref: '#/definitions/view.UserGroupsDeprecated'
      commentsCount:
        type: integer
      commentsCountRead:
        type: integer
      deletedAt:
        type: string
      deletedBy:
        type: integer
      description:
        type: string
      displayName:
        type: string
      downloadURL:
        type: string
      extraData:
        type: string
      fileSource:
        type: string
      filenameOnDisk:
        type: string
      id:
        type: integer
      isLocked:
        type: boolean
      isPrivate:
        description: |-
          IsPrivate can have the values 0 for public, 1 for private and 2 for
          inherited.
        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'
      size:
        type: integer
      status:
        type: string
      tagIds:
        items:
          type: integer
        type: array
      tags:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      thumbURL:
        type: string
      updatedAt:
        type: string
      uploadedAt:
        type: string
      uploadedBy:
        type: integer
      uploadedByUserID:
        type: integer
      uploadedDate:
        type: string
      version:
        $ref: '#/definitions/view.Relationship'
      versionId:
        type: integer
      versions:
        items:
          $ref: '#/definitions/view.FileversionV205'
        type: array
    title: ProjectFileV205
    type: object
  view.ProjectMinMaxAvailableDates:
    description: |-
      ProjectMinMaxAvailableDates shows suggested start and
      end dates for a project.
    properties:
      deadlinesFound:
        type: boolean
      maxEndDate:
        type: string
      minStartDate:
        type: string
      suggestedEndDate:
        type: string
      suggestedStartDate:
        type: string
    title: ProjectMinMaxAvailableDates
    type: object
  view.ProjectPermissions:
    description: ProjectPermissions determines the user permissions associated with a project.
    properties:
      active:
        type: boolean
      addExpenses:
        type: boolean
      addFiles:
        type: boolean
      addForms:
        type: boolean
      addLinks:
        type: boolean
      addMessages:
        type: boolean
      addMilestones:
        type: boolean
      addNotebooks:
        type: boolean
      addProjectUpdate:
        type: boolean
      addRisks:
        type: boolean
      addTaskLists:
        type: boolean
      addTasks:
        type: boolean
      addTime:
        type: boolean
      canAccess:
        type: boolean
      canEditWorkflows:
        type: boolean
      canManagePeople:
        type: boolean
      canManageProjectBudget:
        type: boolean
      canManageProjectMembership:
        type: boolean
      canManageProjectTemplates:
        type: boolean
      canManageRates:
        type: boolean
      canManageSchedule:
        type: boolean
      canViewForms:
        type: boolean
      canViewProjectBudget:
        type: boolean
      canViewProjectMembers:
        type: boolean
      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.ProjectUpdate:
    description: ProjectUpdate contains all the information returned from a update.
    properties:
      color:
        type: string
      createdAt:
        type: string
      createdBy:
        type: integer
      deleted:
        type: boolean
      deletedAt:
        type: string
      deletedBy:
        type: integer
      health:
        type: integer
      healthLabel:
        type: string
      id:
        type: integer
      isActive:
        type: boolean
      likeFromUserIDs:
        items:
          type: integer
        type: array
      likeFromUsers:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      reactions:
        $ref: '#/definitions/view.ReactionsForObject'
      text:
        type: string
      updatedAt:
        type: string
    title: ProjectUpdate
    type: object
  view.ProjectV205:
    description: ProjectV205 contains all the information returned from a project.
    properties:
      activePages:
        properties:
          billing:
            type: boolean
          board:
            type: boolean
          comments:
            type: boolean
          files:
            type: boolean
          finance:
            type: boolean
          forms:
            type: boolean
          gantt:
            type: boolean
          links:
            type: boolean
          list:
            type: boolean
          messages:
            type: boolean
          milestones:
            type: boolean
          notebooks:
            type: boolean
          proofs:
            type: boolean
          riskRegister:
            type: boolean
          table:
            type: boolean
          tasks:
            type: boolean
          time:
            type: boolean
        type: object
      allowNotifyAnyone:
        type: boolean
      announcement:
        type: string
      category:
        $ref: '#/definitions/view.Relationship'
      categoryId:
        type: integer
      company:
        $ref: '#/definitions/view.Relationship'
      companyId:
        type: integer
      createdAt:
        type: string
      createdBy:
        type: integer
      customFieldValueIds:
        items:
          type: integer
        type: array
      customFieldValues:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      customfieldValues:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      defaultPrivacy:
        type: string
      description:
        type: string
      directFileUploadsEnabled:
        type: boolean
      endAt:
        type: string
      endDate:
        type: string
      financialBudget:
        $ref: '#/definitions/view.Relationship'
      financialBudgetId:
        type: integer
      harvestTimersEnabled:
        type: boolean
      id:
        type: integer
      integrations:
        properties:
          googleDrive:
            properties:
              access:
                type: string
              enabled:
                type: boolean
              folder:
                type: string
              folderName:
                type: string
            type: object
          oneDriveBusiness:
            properties:
              account:
                type: string
              enabled:
                type: boolean
              folder:
                type: string
              folderName:
                type: string
            type: object
          sharepoint:
            properties:
              account:
                type: string
              enabled:
                type: boolean
              folder:
                type: string
              folderName:
                type: string
            type: object
          xero:
            properties:
              baseCurrency:
                type: string
              connected:
                type: boolean
              countryCode:
                type: string
              enabled:
                type: boolean
              organisation:
                type: string
            type: object
        type: object
      isBillable:
        type: boolean
      isOnBoardingProject:
        type: boolean
      isProjectAdmin:
        type: boolean
      isSampleProject:
        type: boolean
      isStarred:
        type: boolean
      lastWorkedOn:
        type: string
      latestActivity:
        $ref: '#/definitions/view.Relationship'
      logo:
        type: string
      minMaxAvailableDates:
        $ref: '#/definitions/view.ProjectMinMaxAvailableDates'
      name:
        type: string
      notifyCommentIncludeCreator:
        type: boolean
      notifyEveryone:
        type: boolean
      notifyTaskAssignee:
        type: boolean
      overviewStartPage:
        type: string
      ownedBy:
        type: integer
      ownerId:
        type: integer
      portfolioCards:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      privacyEnabled:
        type: boolean
      projectOwner:
        $ref: '#/definitions/view.Relationship'
      projectOwnerId:
        type: integer
      replyByEmailEnabled:
        type: boolean
      showAnnouncement:
        type: boolean
      skipWeekends:
        type: boolean
      startAt:
        type: string
      startDate:
        type: string
      startPage:
        type: string
      status:
        type: string
      subStatus:
        type: string
      tagIds:
        items:
          type: integer
        type: array
      tags:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      tasksStartPage:
        type: string
      timeBudget:
        $ref: '#/definitions/view.Relationship'
      timeBudgetId:
        type: integer
      type:
        type: string
      update:
        $ref: '#/definitions/view.Relationship'
      updateId:
        type: integer
      updatedAt:
        type: string
      updatedBy:
        type: integer
      users:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      workflows:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
    title: ProjectV205
    type: object
  view.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'
      due:
        $ref: '#/definitions/view.Date'
      entity:
        $ref: '#/definitions/view.Relationship'
      errorObjectIdxs:
        items:
          type: integer
        type: array
      feedbackCount:
        type: integer
      id:
        type: integer
      installationId:
        $ref: '#/definitions/view.Relationship'
      objects:
        items:
          $ref: '#/definitions/view.ProofObject'
        type: array
      parent:
        $ref: '#/definitions/view.Relationship'
      product:
        type: string
      state:
        type: string
      status:
        type: string
      title:
        type: string
      updatedAt:
        type: string
      updatedBy:
        $ref: '#/definitions/view.Relationship'
    title: Proof
    type: object
  view.ProofObject:
    description: ProofObject is a proof object item type.
    properties:
      URL:
        type: string
      approvalStatus:
        type: string
      createdAt:
        type: string
      createdBy:
        $ref: '#/definitions/view.Relationship'
      deletedAt:
        type: string
      deletedBy:
        $ref: '#/definitions/view.Relationship'
      due:
        type: string
      format:
        type: string
      id:
        type: integer
      installationId:
        $ref: '#/definitions/view.Relationship'
      size:
        type: integer
      sourceFormat:
        type: string
      state:
        type: string
      stateMessage:
        type: string
      thumbnail:
        type: string
      title:
        type: string
      totalChunks:
        type: integer
      type:
        type: string
      updatedAt:
        type: string
      updatedBy:
        $ref: '#/definitions/view.Relationship'
      version:
        type: integer
    title: ProofObject
    type: object
  view.PublicForm:
    description: PublicForm is a publically viewable version of Form
    properties:
      allowFileUpload:
        type: boolean
      allowTeamworkBranding:
        type: boolean
      confirmationMessage:
        type: string
      content:
        $ref: '#/definitions/view.Content'
      promptAdditionalSubmissions:
        type: boolean
      redirectUrl:
        type: string
      token:
        $ref: '#/definitions/view.Token'
    title: PublicForm
    type: object
  view.Reaction:
    description: Reaction is a reaction item type.
    properties:
      installation:
        $ref: '#/definitions/view.Relationship'
      installationId:
        type: integer
      object:
        $ref: '#/definitions/view.Relationship'
      objectId:
        type: integer
      objectType:
        type: string
      postedDateTime:
        type: string
      type:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: Reaction
    type: object
  view.ReactionsForObject:
    description: ReactionsForObject contains all reactions information of a specific object.
    properties:
      counts:
        $ref: '#/definitions/view.ReactionsForObjectCounter'
      mine:
        items:
          type: string
        type: array
    title: ReactionsForObject
    type: object
  view.ReactionsForObjectCounter:
    description: |-
      ReactionsForObjectCounter contains the reactions counter of a specific
      object.
    properties:
      dislike:
        type: integer
      frown:
        type: integer
      heart:
        type: integer
      joy:
        type: integer
      like:
        type: integer
    title: ReactionsForObjectCounter
    type: object
  view.RelatedItems:
    description: RelatedItems represents the items a file can be related to.
    properties:
      comments:
        items:
          type: integer
        type: array
      messages:
        items:
          type: integer
        type: array
      tasks:
        items:
          type: integer
        type: array
    title: RelatedItems
    type: object
  view.Relationship:
    description: Relationship describes the relation between the main entity and a sideload type.
    properties:
      id:
        type: integer
      meta:
        type: object
      type:
        type: string
    title: Relationship
    type: object
  view.Risk:
    description: Risk represents a view of a risk.
    properties:
      canEdit:
        type: boolean
      createdAt:
        type: string
      createdBy:
        type: integer
      createdByUserId:
        type: integer
      createdOn:
        type: string
      deleted:
        type: boolean
      id:
        type: integer
      impact:
        type: string
      impactCost:
        type: boolean
      impactPerformance:
        type: boolean
      impactSchedule:
        type: boolean
      impactValue:
        type: integer
      lastChangedByUserId:
        type: integer
      lastChangedOn:
        type: string
      mitigationPlan:
        type: string
      probability:
        type: string
      probabilityValue:
        type: integer
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      result:
        type: integer
      source:
        type: string
      status:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
    title: Risk
    type: object
  view.SampleProject:
    description: SampleProject contains all the sample project information.
    properties:
      categoryId:
        type: integer
      code:
        type: string
      content: {}
      description:
        type: string
      icon:
        type: string
      id:
        type: integer
      imagePreview:
        type: string
      name:
        type: string
    title: SampleProject
    type: object
  view.Stage:
    description: Stage contains all the information returned from a stage.
    properties:
      color:
        type: string
      createdAt:
        type: string
      createdBy:
        type: integer
      deletedAt:
        type: string
      deletedBy:
        type: integer
      displayOrder:
        type: number
      id:
        type: integer
      name:
        type: string
      showCompletedTasks:
        type: boolean
      taskIds:
        items:
          type: integer
        type: array
      updatedAt:
        type: string
      updatedBy:
        type: integer
      workflow:
        $ref: '#/definitions/view.Relationship'
    title: Stage
    type: object
  view.Status:
    description: Status contains all the information returned from a status.
    properties:
      dateLastUpdated:
        type: string
      dateTime:
        type: string
      deleted:
        type: boolean
      emoji:
        type: string
      id:
        type: integer
      ipAddress:
        type: string
      text:
        type: string
      updatedAt:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: Status
    type: object
  view.Tag:
    description: Tag contains all the information returned from a tag.
    properties:
      color:
        type: string
      count:
        type: integer
      id:
        type: integer
      name:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
    title: Tag
    type: object
  view.TaskAffectedV205:
    description: TaskAffectedV205 contains the affected tasks, for real-time updates
    properties:
      linkedCardId:
        type: integer
      linkedColumnId:
        type: integer
      linkedColumnName:
        type: string
      taskIds:
        items:
          type: integer
        type: array
    title: TaskAffectedV205
    type: object
  view.TaskCard:
    description: TaskCard contains all the information returned from a card.
    properties:
      archived:
        type: boolean
      archivedAt:
        type: string
      archivedBy:
        $ref: '#/definitions/view.Relationship'
      column:
        $ref: '#/definitions/view.Relationship'
      createBy:
        $ref: '#/definitions/view.Relationship'
      createdAt:
        type: string
      deleteBy:
        $ref: '#/definitions/view.Relationship'
      deletedAt:
        type: string
      displayOrder:
        type: integer
      id:
        type: integer
      status:
        type: string
      updatedAt:
        type: string
      visible:
        type: boolean
    title: TaskCard
    type: object
  view.TaskPermissions:
    description: TaskPermissions is a user specific set of task permissions
    properties:
      canAddSubtasks:
        type: boolean
      canComplete:
        type: boolean
      canEdit:
        type: boolean
      canLogTime:
        type: boolean
      canViewEstTime:
        type: boolean
    title: TaskPermissions
    type: object
  view.TaskReminder:
    description: TaskReminder contains all the information returned from a reminder.
    properties:
      createdAt:
        type: string
      createdBy:
        $ref: '#/definitions/view.Relationship'
      id:
        type: integer
      isRelative:
        type: boolean
      note:
        type: string
      relativeNumberDays:
        type: integer
      remindAt:
        type: string
      task:
        $ref: '#/definitions/view.Relationship'
      type:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      wasSent:
        type: boolean
    title: TaskReminder
    type: object
  view.TaskSequence:
    description: TaskSequence defines how entity.TaskSequence should be rendered.
    properties:
      dates:
        items:
          $ref: '#/definitions/view.Date'
        type: array
      duration:
        type: integer
      endDate:
        type: string
      frequency:
        type: string
      id:
        type: integer
      installationId:
        type: integer
      monthlyRepeatType:
        type: string
      rrule:
        type: string
      selectedWeekDays:
        items:
          type: string
        type: array
      tasks:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
    title: TaskSequence
    type: object
  view.TaskStats:
    description: TaskStats shows basic task stats
    properties:
      active:
        type: integer
      complete:
        type: integer
      id:
        type: integer
      late:
        type: integer
    title: TaskStats
    type: object
  view.TaskTimeTotals:
    description: TaskTimeTotals contains time total info for a task
    properties:
      billableLoggedMinutes:
        type: integer
      billedloggedMinutes:
        type: integer
      loggedMinutes:
        type: integer
    title: TaskTimeTotals
    type: object
  view.TaskV205:
    description: TaskV205 defines how entity.Task should be rendered.
    properties:
      accumulatedEstimatedMinutes:
        type: integer
      assigneeCompanies:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      assigneeCompanyIds:
        items:
          type: integer
        type: array
      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
      card:
        $ref: '#/definitions/view.Relationship'
      changeFollowers:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      column:
        $ref: '#/definitions/view.Relationship'
      commentFollowers:
        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
      dependencyIds:
        items:
          type: integer
        type: array
      description:
        type: string
      descriptionContentType:
        type: string
      displayOrder:
        type: integer
      dueDate:
        type: string
      dueDateOffset:
        type: integer
      estimateMinutes:
        type: integer
      hasDeskTickets:
        type: boolean
      hasReminders:
        type: boolean
      id:
        type: integer
      isArchived:
        type: boolean
      isBlocked:
        type: boolean
      isPrivate:
        type: integer
      latestUpdates:
        items:
          $ref: '#/definitions/view.Audit'
        type: array
      lockdown:
        $ref: '#/definitions/view.Relationship'
      meta:
        type: object
      name:
        type: string
      originalDueDate:
        $ref: '#/definitions/view.Date'
      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:
        $ref: '#/definitions/view.Date'
      sequenceId:
        type: integer
      sequenceRootTask:
        type: boolean
      sequenceStartDate:
        $ref: '#/definitions/view.Date'
      startDate:
        type: string
      startDateOffset:
        type: integer
      status:
        type: string
      subTaskIds:
        items:
          type: integer
        type: array
      tagIds:
        items:
          type: integer
        type: array
      tasklist:
        $ref: '#/definitions/view.Relationship'
      tasklistId:
        type: integer
      templateRoleName:
        type: string
      timer:
        $ref: '#/definitions/view.Relationship'
      updatedAt:
        type: string
      updatedBy:
        type: integer
      userPermissions:
        $ref: '#/definitions/view.TaskPermissions'
      workflowStages:
        items:
          $ref: '#/definitions/view.TaskWorkflowStageData'
        type: array
    title: TaskV205
    type: object
  view.TaskWorkflowStageData:
    description: TaskWorkflowStageData contains the workflow data for a task
    properties:
      stageId:
        type: integer
      stageTaskDisplayOrder:
        type: number
      workflowId:
        type: integer
    title: TaskWorkflowStageData
    type: object
  view.Taskgroup:
    description: Taskgroup contains all the information returned from a Taskgroup.
    properties:
      createdAt:
        type: string
      createdBy:
        type: integer
      description:
        type: string
      displayOrder:
        type: number
      id:
        type: integer
      name:
        type: string
      status:
        type: string
      taskIds:
        items:
          type: integer
        type: array
      updatedAt:
        type: string
      updatedBy:
        type: integer
    title: Taskgroup
    type: object
  view.Tasklist:
    description: Tasklist contains all the information returned from a tasklist.
    properties:
      createdAt:
        type: string
      defaultTask:
        $ref: '#/definitions/view.Relationship'
      defaultTaskId:
        type: integer
      description:
        type: string
      displayOrder:
        type: integer
      icon:
        type: string
      id:
        type: integer
      isBillable:
        type: boolean
      isPinned:
        type: boolean
      isPrivate:
        type: boolean
      lockdownId:
        type: integer
      milestone:
        $ref: '#/definitions/view.Relationship'
      milestoneId:
        type: integer
      name:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      status:
        type: string
      tasklistBudget:
        $ref: '#/definitions/view.Relationship'
      updatedAt:
        type: string
    title: Tasklist
    type: object
  view.TasklistBudget:
    description: TasklistBudget is a budget item type.
    properties:
      capacity:
        type: integer
      capacityUsed:
        type: integer
      createdAt:
        type: string
      createdBy:
        type: integer
      deletedAt:
        type: string
      deletedBy:
        type: integer
      id:
        type: integer
      installationId:
        type: integer
      notificationIds:
        items:
          type: integer
        type: array
      notifications:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      projectBudgetId:
        type: integer
      projectId:
        type: integer
      projectbudget:
        $ref: '#/definitions/view.Relationship'
      tasklist:
        $ref: '#/definitions/view.Relationship'
      tasklistId:
        type: integer
      type:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
    title: TasklistBudget
    type: object
  view.TasklistBudgetNotification:
    description: TasklistBudgetNotification contains all the information returned from a notification.
    properties:
      budgetId:
        type: integer
      capacityThreshold:
        type: number
      companyId:
        type: integer
      id:
        type: integer
      notificationMedium:
        type: string
      teamId:
        type: integer
      userId:
        type: integer
    title: TasklistBudgetNotification
    type: object
  view.Team:
    description: Team contains all the information returned from a team.
    properties:
      id:
        type: integer
      name:
        type: string
      teamLogo:
        type: string
      teamLogoColor:
        type: string
      teamLogoIcon:
        type: string
    title: Team
    type: object
  view.Timelog:
    description: Timelog contains all the information returned from a timelog.
    properties:
      assignedTeamIds:
        items:
          type: integer
        type: array
      billable:
        type: boolean
      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
      loggedBy:
        type: integer
      loggedByUserId:
        type: integer
      minutes:
        type: integer
      project:
        $ref: '#/definitions/view.Relationship'
      projectBillingInvoice:
        $ref: '#/definitions/view.Relationship'
      projectBillingInvoiceId:
        type: integer
      projectId:
        type: integer
      tagIds:
        items:
          type: integer
        type: array
      tags:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      task:
        $ref: '#/definitions/view.Relationship'
      taskId:
        type: integer
      taskIdPreMove:
        type: integer
      taskPreMove:
        $ref: '#/definitions/view.Relationship'
      timeLogged:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: Timelog
    type: object
  view.TimelogTotals:
    description: TimelogTotals contains all the information returned for timelog totals.
    properties:
      estimatedMinutes:
        type: integer
      estimatedMinutesActive:
        type: integer
      estimatedMinutesCompleted:
        type: integer
      estimatedMinutesFiltered:
        type: integer
      estimatedMinutesWithLoggedTime:
        type: integer
      minutes:
        type: integer
      minutesBillable:
        type: integer
      minutesBilled:
        type: integer
      minutesNonBillable:
        type: integer
      minutesNonBilled:
        type: integer
    title: TimelogTotals
    type: object
  view.TimelogTotalsSubtasks:
    description: TimelogTotalsSubtasks contains all the information returned for timelog totals for subtasks.
    properties:
      estimatedMinutes:
        type: integer
      minutes:
        type: integer
      minutesBillable:
        type: integer
    title: TimelogTotalsSubtasks
    type: object
  view.Timer:
    description: Timer contains all the information returned from a timer.
    properties:
      billable:
        type: boolean
      createdAt:
        type: string
      deleted:
        type: boolean
      deletedAt:
        type: string
      description:
        type: string
      duration:
        type: integer
      id:
        type: integer
      intervals:
        items:
          $ref: '#/definitions/view.TimerInterval'
        type: array
      lastStartedAt:
        type: string
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      running:
        type: boolean
      serverTime:
        type: string
      task:
        $ref: '#/definitions/view.Relationship'
      taskId:
        type: integer
      timeLogId:
        type: integer
      timelog:
        $ref: '#/definitions/view.Relationship'
      timerLastIntervalEnd:
        type: string
      updatedAt:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: Timer
    type: object
  view.TimerInterval:
    description: |-
      TimerInterval contains all the information returned from a timer
      interval.
    properties:
      duration:
        type: integer
      from:
        type: string
      id:
        type: integer
      to:
        type: string
    title: TimerInterval
    type: object
  view.TimesheetCustomRow:
    description: TimesheetCustomRow represents a custom row for a timesheet
    properties:
      entityId:
        type: integer
      entityType:
        type: string
      id:
        type: integer
    title: TimesheetCustomRow
    type: object
  view.Token:
    description: Token contains all the information returned from a form token.
    properties:
      canonicalURL:
        type: string
      value:
        type: string
    title: Token
    type: object
  view.UnavailableTimes:
    description: UnavailableTimes contains date summary and total Unavailable minutes
    properties:
      dates:
        additionalProperties:
          $ref: '#/definitions/view.UnavailableTimesDateSummary'
        type: object
      totalUnavailableMinutes:
        type: integer
    title: UnavailableTimes
    type: object
  view.UnavailableTimesDateSummary:
    description: UnavailableTimesDateSummary contains total minutes and event ids for a date
    properties:
      totalUnavailableMinutes:
        type: integer
      unavailableTimes:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
    title: UnavailableTimesDateSummary
    type: object
  view.User:
    description: User contains all the information returned from an user.
    properties:
      avatarUrl:
        type: string
      canAddProjects:
        type: boolean
      company:
        $ref: '#/definitions/view.Relationship'
      companyId:
        type: integer
      companyRoleId:
        type: integer
      deleted:
        type: boolean
      email:
        type: string
      firstName:
        type: string
      id:
        type: integer
      isAdmin:
        type: boolean
      isClientUser:
        type: boolean
      isServiceAccount:
        type: boolean
      lastName:
        type: string
      lengthOfDay:
        type: number
      meta:
        type: object
      teams:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      timezone:
        type: string
      title:
        type: string
      type:
        type: string
      userCost:
        type: integer
      userRate:
        type: integer
      workingHour:
        $ref: '#/definitions/view.Relationship'
      workingHoursId:
        type: integer
    title: User
    type: object
  view.UserDashboard:
    description: UserDashboard contains all the information returned from a dashboard.
    properties:
      color:
        type: string
      createdAt:
        type: string
      dashboardPanelIds:
        items:
          type: integer
        type: array
      dashboardPanels:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      dashboardSettingIds:
        items:
          type: integer
        type: array
      dashboardSettings:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      deleted:
        type: boolean
      deletedAt:
        type: string
      description:
        type: string
      displayOrder:
        type: integer
      id:
        type: integer
      isDefault:
        type: boolean
      project:
        $ref: '#/definitions/view.Relationship'
      projectId:
        type: integer
      title:
        type: string
      updatedAt:
        type: string
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: UserDashboard
    type: object
  view.UserDashboardPanel:
    description: |-
      UserDashboardPanel contains all the information returned from a dashboard
      panel.
    properties:
      dashboardId:
        type: integer
      dashboardPanelSettingIds:
        items:
          type: integer
        type: array
      displayOrder:
        type: integer
      id:
        type: integer
      name:
        type: string
      type:
        type: string
    title: UserDashboardPanel
    type: object
  view.UserDashboardPanelSetting:
    description: |-
      UserDashboardPanelSetting contains all the information returned from a dashboard
      panel.
    properties:
      dashboardId:
        type: integer
      dashboardPanelId:
        type: integer
      id:
        type: integer
      name:
        type: string
      value:
        type: string
    title: UserDashboardPanelSetting
    type: object
  view.UserDashboardSetting:
    description: |-
      UserDashboardSetting contains all the information returned from a dashboard
      setting.
    properties:
      dashboardId:
        type: integer
      id:
        type: integer
      name:
        type: string
      value:
        type: string
    title: UserDashboardSetting
    type: object
  view.UserEvents:
    description: |-
      UserEvents contains status details from other project
      features related with a user.
    properties:
      clockedIn:
        type: boolean
    title: UserEvents
    type: object
  view.UserGroupsDeprecated:
    description: |-
      UserGroupsDeprecated are common lists
      for storing users, companies and teams ids
      together.
      Use []Relationship instead
    properties:
      companies:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      companyIds:
        items:
          type: integer
        type: array
      teamIds:
        items:
          type: integer
        type: array
      teams:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      userIds:
        items:
          type: integer
        type: array
      users:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
    title: UserGroupsDeprecated
    type: object
  view.UserUtilization:
    description: UserUtilization contains all the information returned from a utilization.
    properties:
      data:
        items:
          $ref: '#/definitions/view.UserUtilizationData'
        type: array
      user:
        $ref: '#/definitions/view.Relationship'
      userId:
        type: integer
    title: UserUtilization
    type: object
  view.UserUtilizationData:
    description: UserUtilizationData stores the user utilization on a specific period.
    properties:
      allocatedMinutes:
        type: integer
      availableMinutes:
        type: integer
      billableMinutes:
        type: integer
      endDate:
        $ref: '#/definitions/view.Date'
      estimatedMinutes:
        type: integer
      loggedMinutes:
        type: integer
      startDate:
        $ref: '#/definitions/view.Date'
      unavailableMinutes:
        type: integer
      unbillableMinutes:
        type: integer
    title: UserUtilizationData
    type: object
  view.Workflow:
    description: Workflow contains all the information returned from a workflow.
    properties:
      createdAt:
        type: string
      createdBy:
        type: integer
      defaultWorkflow:
        type: boolean
      id:
        type: integer
      lockdown:
        $ref: '#/definitions/view.Relationship'
      name:
        type: string
      projectIds:
        items:
          type: integer
        type: array
      projectSpecific:
        type: boolean
      stages:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      status:
        type: string
      updatedAt:
        type: string
      updatedBy:
        type: integer
    title: Workflow
    type: object
  view.WorkingHour:
    description: WorkingHour stores the the working hours of an entity (user, team, etc).
    properties:
      createdAt:
        type: string
      dateCreated:
        type: string
      dateUpdated:
        type: string
      description:
        type: string
      entries:
        items:
          $ref: '#/definitions/view.Relationship'
        type: array
      entryIds:
        items:
          type: integer
        type: array
      id:
        type: integer
      name:
        type: string
      object:
        $ref: '#/definitions/view.Relationship'
      objectId:
        type: integer
      objectType:
        type: string
      updatedAt:
        type: string
    title: WorkingHour
    type: object
  view.WorkingHourEntry:
    description: WorkingHourEntry stores weekday working hour data.
    properties:
      endTime:
        type: string
      id:
        type: integer
      startTime:
        type: string
      taskHours:
        type: number
      timezone:
        type: string
      weekday:
        type: string
      workingHour:
        $ref: '#/definitions/view.Relationship'
      workingHourId:
        type: integer
    title: WorkingHourEntry
    type: object
  workflow.BulkProjectRequest:
    description: |-
      BulkProjectRequest contains the information for applying a workflow to
      many projects
    properties:
      id:
        type: integer
      projects:
        items:
          $ref: '#/definitions/workflow.ProjectMapping'
        type: array
      workflowOptions:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
    title: BulkProjectRequest
    type: object
  workflow.ProjectMapping:
    description: ProjectMapping contains the info for the project to be mapped
    properties:
      currentWorkflowId:
        type: integer
      projectId:
        type: integer
      stages:
        items:
          $ref: '#/definitions/workflow.StageMapping'
        type: array
    title: ProjectMapping
    type: object
  workflow.StageMapping:
    description: StageMapping contains the ids of the stages to map
    properties:
      from:
        type: integer
      to:
        type: integer
    title: StageMapping
    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:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.IncludedProject'
            type: object
          stages:
            additionalProperties:
              $ref: '#/definitions/view.Stage'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      workflows:
        items:
          $ref: '#/definitions/view.Workflow'
        type: array
    title: WorkflowsResponse
    type: object
  workflow.Request:
    description: Request contains information of a workflow to be created or updated.
    properties:
      workflow:
        $ref: '#/definitions/workflow.Workflow'
      workflowOptions:
        properties:
          fireWebhook:
            type: boolean
          logActivity:
            type: boolean
          useNotifyViaTWIM:
            type: boolean
        type: object
    title: Request
    type: object
  workflow.Response:
    description: Response contains information about a specific workflow.
    properties:
      included:
        properties:
          companies:
            additionalProperties:
              $ref: '#/definitions/view.Company'
            type: object
          projects:
            additionalProperties:
              $ref: '#/definitions/view.IncludedProject'
            type: object
          stages:
            additionalProperties:
              $ref: '#/definitions/view.Stage'
            type: object
          teams:
            additionalProperties:
              $ref: '#/definitions/view.Team'
            type: object
          users:
            additionalProperties:
              $ref: '#/definitions/view.User'
            type: object
        type: object
      meta:
        $ref: '#/definitions/view.Meta'
      workflow:
        $ref: '#/definitions/view.Workflow'
    title: Response
    type: object
info:
  version: v1
  title: Teamwork.com API
  description: ''
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
tags:
  - name: Projects
  - name: Tasks
paths:
  /projects/api/v3/projects.json:
    get:
      description: |-
        Retrieve all projects for the provided filters. Only the projects that the
        logged-in user can access will be returned.
        
        On this endpoint you can filter by project custom fields. The syntax for the
        query parameter is the following:

            projectCustomField[id][op]=value

        Where:
          - [id] is the custom field ID
          - [op] is the operator to apply when filtering, different operators are
            allowed according to the custom field type
          - [value] is the value to apply when filtering

        For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following:

            projectCustomField[10][eq]=Option1

        The allowed operators are:
          - like
          - not-like
          - eq
          - not
          - lt
          - gt
          - any
          
        The **like** and **not-like** operators use the **%25** wildcard character. 
        ie: To filter a dropdown custom field with ID 10 to return entries that contain the value "ption" we would do the following
            
            projectCustomField[10][like]=%25ption%25
            
      operationId: GET_projects_api_v3_projects.json
      parameters:
        - description: |-
            updated after 
            <br/>(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: updatedAfter
          type: string
          default: "2024-06-21"
        - description: filter by project name
          in: query
          name: searchTerm
          type: string
          default: My first Project
        - default: project
          description: define the type of the report
          enum:
            - project
            - health
          in: query
          name: reportType
          type: string
        - description: Optional to configure the report dates displayed in a timezone
          in: query
          name: reportTimezone
          type: string
        - default: pdf
          description: define the format of the report
          enum:
            - csv
            - html
            - pdf
            - xls
          in: query
          name: reportFormat
          type: string
        - description: filter by project type
          in: query
          name: projectType
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: name
          description: order by
          enum:
            - companyname
            - datecreated
            - duedate
            - lastactivity
            - name
            - namecaseinsensitive
            - ownercompany
            - starred
            - categoryname
          in: query
          name: orderBy
          type: string
        - description: |-
            filter by projects that have not been completed before the given date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: notCompletedBefore
          type: string
        - description: |-
            filter by min last activity date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: minLastActivityDate
          type: string
        - description: |-
            filter by max last activity date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: maxLastActivityDate
          type: string
        - description: currency symbol for report export
          in: query
          name: currencySymbol
          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)
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500 
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports) 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          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
          default: 'false'
        - description: 'SkipCounts allows you to skip doing counts on a list API endpoint for performance reasons.'
          in: query
          name: skipCounts
          type: boolean
          default: 'false'
        - description: include companies in the search
          in: query
          name: searchCompanies
          type: boolean
          default: 'false'
        - description: search projects beginning with the search term character only when it contains a single character.
          in: query
          name: searchByLetter
          type: boolean
          default: 'false'
        - description: filter by starred projects only
          in: query
          name: onlyStarredProjects
          type: boolean
          default: 'false'
        - default: 'false'
          description: only show projects with explicit membership
          in: query
          name: onlyProjectsWithExplicitMembership
          type: boolean
        - default: 'false'
          description: can log time on projects
          in: query
          name: onlyProjectsThatCanLogTime
          type: boolean
        - default: 'false'
          description: return only archived projects
          in: query
          name: onlyArchivedProjects
          type: boolean
        - description: match all project tags (used when filtering with tags)
          in: query
          name: matchAllProjectTags
          type: boolean
          default: 'false'
        - description: match all excluded project tags (used when filtering with tags)
          in: query
          name: matchAllExcludedTags
          type: boolean
          default: 'false'
        - 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
          default: 'false'
        - description: include sub categories when filtering by ids
          in: query
          name: includeSubCategories
          type: boolean
          default: 'false'
        - description: include project status counts for tasks columns billing events milestones
          in: query
          name: includeStats
          type: boolean
          default: 'false'
        - 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
          default: 'false'
        - description: include minimum and maximum start/end dates for projects
          in: query
          name: includeProjectDates
          type: boolean
          default: 'false'
        - default: 'false'
          description: include custom fields
          in: query
          name: includeCustomFields
          type: boolean
        - description: include project related counts
          in: query
          name: includeCounts
          type: boolean
          default: 'false'
        - description: optional to include completed projects when filtering by project statuses "current,late".
          in: query
          name: includeCompletedStatus
          type: boolean
          default: 'false'
        - 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
          default: 'false'
        - 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
          default: 'active'
        - 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

            0: not set
            1: bad
            2: ok
            3: 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
              - projectCategories
              - portfolioCards
              - portfolioBoards
              - portfolioColumns
              - tags
              - customfields
              - customfieldProjects
              - projectBudgets
              - activities.latest
              - users
              - createdBy
              - updatedBy
              - completedBy
              - deletedBy
            type: string
          name: include
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - statusId
            type: string
          name: fields[workflows]
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: fields[users]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - stage
            type: string
          name: fields[stages]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/project.projectsResponseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Returns a list of projects - V3
      tags:
        - Projects
  '/projects/api/v3/projects/{projectId}.json':
    get:
      description: |-
        On this endpoint you can filter by project custom fields. The syntax for the
        query parameter is the following:

            projectCustomField[id][op]=value

        Where:
          - [id] is the custom field ID
          - [op] is the operator to apply when filtering, different operators are
            allowed according to the custom field type
          - [value] is the value to apply when filtering

        For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following:

            projectCustomField[10][eq]=Option1

        The allowed operators are:
          - like
          - not-like
          - eq
          - not
          - lt
          - gt
          - any
          
        The **like** and **not-like** operators use the **%25** wildcard character. 
        ie: To filter a dropdown custom field with ID 10 to return entries that contain the value "ption" we would do the following
            
            projectCustomField[10][like]=%25ption%25
      operationId: 'GET_projects_api_v3_projects_{projectId}.json'
      parameters:
        - description: |-
            updated after 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: updatedAfter
          type: string
          default: 20240621
        - description: filter by project name
          in: query
          name: searchTerm
          type: string
          default: 'project'
        - default: project
          description: define the type of the report
          enum:
            - project
            - health
          in: query
          name: reportType
          type: string
        - description: Optional to configure the report dates displayed in a timezone
          in: query
          name: reportTimezone
          type: string
        - default: pdf
          description: define the format of the report
          enum:
            - csv
            - html
            - pdf
            - xls
          in: query
          name: reportFormat
          type: string
        - description: filter by project type
          in: query
          name: projectType
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: name
          description: order by
          enum:
            - companyname
            - datecreated
            - duedate
            - lastactivity
            - name
            - namecaseinsensitive
            - ownercompany
            - starred
            - categoryname
          in: query
          name: orderBy
          type: string
        - description: |-
            filter by projects that have not been completed before the given date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: notCompletedBefore
          type: string
        - description: |-
            filter by min last activity date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: minLastActivityDate
          type: string
        - description: |-
            filter by max last activity date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: maxLastActivityDate
          type: string
        - description: currency symbol for report export
          in: query
          name: currencySymbol
          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)
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports) 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          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: 'SkipCounts allows you to skip doing counts on a list API endpoint for performance reasons.'
          in: query
          name: skipCounts
          type: boolean
          default: 'false'
        - description: include companies in the search
          in: query
          name: searchCompanies
          type: boolean
          default: 'false'
        - description: search projects beginning with the search term character only when it contains a single character.
          in: query
          name: searchByLetter
          type: boolean
          default: 'false'
        - description: filter by starred projects only
          in: query
          name: onlyStarredProjects
          type: boolean
          default: 'false'
        - default: 'false'
          description: only show projects with explicit membership
          in: query
          name: onlyProjectsWithExplicitMembership
          type: boolean
        - default: 'false'
          description: can log time on projects
          in: query
          name: onlyProjectsThatCanLogTime
          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
          default: 'false'
        - 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
          default: 'false'
        - description: include sub categories when filtering by ids
          in: query
          name: includeSubCategories
          type: boolean
          default: 'false'
        - 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
        - default: 'false'
          description: include custom fields
          in: query
          name: includeCustomFields
          type: boolean
        - description: include project related counts
          in: query
          name: includeCounts
          type: boolean
          default: 'false'
        - 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
          default: 'false'
        - 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

            0: not set
            1: bad
            2: ok
            3: 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
              - projectCategories
              - portfolioCards
              - portfolioBoards
              - portfolioColumns
              - tags
              - customfields
              - customfieldProjects
              - projectBudgets
              - activities.latest
              - users
              - createdBy
              - updatedBy
              - completedBy
              - deletedBy
            type: string
          name: include
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - statusId
            type: string
          name: 'fields[workflows]'
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: 'fields[users]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: 'fields[tags]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - stage
            type: string
          name: 'fields[stages]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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
      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 - V3
      tags:
        - Projects
  /projects.json:
    post:
      operationId: POST_projects-json
      summary: Create Project - V1
      tags:
        - Projects
      description: |-
        To create a project, use this endpoint. 

        ---

        To add a custom field to a project, you pass in the custom field object to this endpoint. The custom field must already be created, you can do that by using [V3 Custom Fields](/guides/teamwork/custom-fields). Once the custom field is created, it’s available to attach a project. See sample payload below.
        
        - **Add custom fields on a project**: 
        To add the custom fields, pass in the values of the custom fields with this endpoint. Eg:
        ```
        {
            "project": {
                "customFields": [
                    {
                        "customFieldId": 68, 
                        "value": "Jane Doe"
                    }, 
                    {
                        "customFieldId": 75, 
                        "value": "Finance"
                    }
                ]
            }
        }
        ```
        
        To update or delete custom fields from a project pass an empty array for the customFields param. Example on [Updating a project](docs/teamwork/v1/projects/put-projects-id-json).
        
        - **To delete custom fields from a project**:
        Pass an empty array for the customFields param. Eg:
        ```
        {
            "project": {
                "customFields": []
            }
        }

        ```

        To test that the custom field was added, you need to use the [V2 projects](/docs/teamwork/v2/custom-fields/get-projects-api-v2-projects-json) endpoint with **"includeCustomFields=true"** to return the custom fields and their values. 
        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              project:
                type: object
                properties:
                  name:
                    type: string
                    example: My First Project
                  description:
                    type: string
                    example: Project description here
                  use-tasks:
                    type: boolean
                  use-milestones:
                    type: boolean
                  use-messages:
                    type: boolean
                  use-files:
                    type: boolean
                  use-time:
                    type: boolean
                  use-notebook:
                    type: boolean
                  use-riskregister:
                    type: boolean
                  use-links:
                    type: boolean
                  use-billing:
                    type: boolean
                  use-comments:
                    type: boolean
                  category-id:
                    type: integer
                    default: 0
                  start-date:
                    type: string
                    default: YYYYMMDD
                    example: 20240621
                    description: 'Date format: yyyymmdd'
                  end-date:
                    type: string
                    default: YYYYMMDD
                    example: 20240628
                    description: 'Date format: yyyymmdd'
                  tagIds:
                    type: string
                    example: 102860,102864
                    description: 'List of Ids (comman separated) - Leave blank for no tags'
                  onboarding:
                    type: boolean
                  grant-access-to:
                    type: string
                  private:
                    type: boolean
                  customFields:
                    type: array
                    items:
                      type: object
                      properties:
                        customFieldId:
                          type: integer
                        value:
                          type: string
                  people:
                    type: integer
                    description: List of Ids (comman separated)
                  projectOwnerId:
                    type: integer
                    default: 0
                  companyId:
                    type: integer
                    default: 0
      responses:
        '201':
          description: ''
          schema:
            type: object
            properties:
              id:
                type: string
              STATUS:
                type: string
          examples:
            application/json:
              id: '323605'
              STATUS: Created
            new:
              project:
                name: nisi
                description: sed exercitation
                use-tasks: false
                use-milestones: true
                use-messages: true
                use-files: false
                use-time: false
                use-notebook: true
                use-riskregister: true
                use-links: false
                use-billing: false
                use-comments: false
                category-id: -61196040
                start-date: ea es
                end-date: labore sunt
                tagIds: dolore minim
                onboarding: true
                templateDateTargetDefault: occaecat
                grant-access-to: in
                private: false
                customFields:
                  - customFieldId: -46820729
                    value: eiusmod
                  - customFieldId: 43281463
                    value: do velit cupidatat ut
                  - customFieldId: -26453277
                    value: Excepteur eu dolor est
                  - customFieldId: -85072601
                    value: veniam dolore mollit incididunt
                people: irure officia commodo tempor ex
                projectOwnerId: quis d
                companyId: 90304027
  '/projects/{id}.json':
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_projects-id-json
      summary: Update Project - V1
      tags:
        - Projects
      description: |-
        Modifies a single project.

        Use this endpoint to: 
        - **Enable and Disable Projects Features**: All features in Projects such as Tasks, Messages, Time, Billing and more can be enabled and disabled via the API.

        ```
        {
          "project": {
            "use-tasks": "1",
            "use-messages": "1",
            "use-time": "1",
            "use-riskregister": "1",
            "use-billing": "1",
            "use-milestones": "1",
            "use-files": "1",
            "use-notebook": "1",
            "use-links": "1"
          }
        }
        ```

        - **Set/Remove a Project Owner**: This allows you to set a project owner by using in the project id in the path and sending in the id of the owner in the body of the request.

        Please note:

        If the project is inside a portfolio board, you will also recieve the column and the card that project is associated with. This affects the board because you can filter by project owner.

        Your response will look like this:

        ```
        {
            "linkedColumnId": "12345",
            "STATUS": "OK",
            "linkedCardId": "12345"
        }
        ```

        - **Update a Project Status**: Modifies a single project status. Inactive to archive project, active to unarchive project.
        ```
        {
          "project": {
            "status": "inactive"
          }
        }
        ```
        - **Add or update the Project logo**: This will add an image to become a Project logo. It will replace the existing logo if there is one in place. First, use the file upload API call to upload a file and receive back a file reference string. Then, perform the following to update a project.
        ```
        {
            "project": {
                "logoPendingFileRef": "{your_uploaded_file_reference}"
            }
        }
        ```

        - **Update or remove custom fields on a project**: 
        To update the custom fields, pass in the updated values of the custom fields this endpoint. Eg:
        ```
        {
            "project": {
                "customFields": [
                    {
                        "customFieldId": 68, 
                        "value": "Jane Doe"
                    }, 
                    {
                        "customFieldId": 75, 
                        "value": "Finance"
                    }
                ]
            }
        }
        ```

        To delete custom fields from a project pass an empty array for the customFields param. Eg:
        ```
        {
            "todo-item": {
                "customFields": []
            }
        }

        ```

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              project:
                type: object
                properties:
                  name:
                    type: string
                  description:
                    type: string
                  use-tasks:
                    type: boolean
                  use-milestones:
                    type: boolean
                  use-messages:
                    type: boolean
                  use-files:
                    type: boolean
                  use-time:
                    type: boolean
                  use-notebook:
                    type: boolean
                  use-riskregister:
                    type: boolean
                  use-links:
                    type: boolean
                  use-billing:
                    type: boolean
                  use-comments:
                    type: boolean
                  category-id:
                    type: integer
                  start-date:
                    type: string
                    description: 'Passed in as string format: yyyymmdd'
                    example: '20210101'
                  end-date:
                    type: string
                    description: 'Passed in as string format: yyyymmdd'
                    example: '20211212'
                  tagIds:
                    type: string
                  onboarding:
                    type: boolean
                  templateDateTargetDefault:
                    type: string
                  grant-access-to:
                    type: string
                  private:
                    type: boolean
                  customFields:
                    type: array
                    items:
                      type: object
                      properties:
                        customFieldId:
                          type: integer
                        value:
                          type: string
                  people:
                    type: string
                  projectOwnerId:
                    type: string
                  companyId:
                    type: integer
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
    delete:
      operationId: DELETE_projects-id-json
      summary: Delete Project - V1
      tags:
        - Projects
      description: |-
        Deletes a single project.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /projects/api/v3/tasks.json:
    get:
      description: Return multiple tasks according to the provided filter.
      operationId: GET_projects_api_v3_tasks.json
      parameters:
        - description: |-
            filter by updated before date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: updatedBefore
          type: string
        - description: |-
            filter by updated after date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: |-
            filter by today 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          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: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          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 by task priority
          in: query
          name: priority
          type: string
          enum:
            - any
            - none
            - low
            - medium
            - high
          default: any
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: duedate
          description: order by
          enum:
            - 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
          in: query
          name: orderBy
          type: string
        - description: |-
            filter by projects that have not been completed before the given date  
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: notCompletedBefore
          type: string
        - description: |-
            filter on end date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date
          in: query
          name: endDate
          type: string
        - description: |-
            filter on deleted after date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          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: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: createdBefore
          type: string
        - description: |-
            filter by created after date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: createdAfter
          type: string
        - description: |-
            filter by completed before date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: completedBefore
          type: string
        - description: |-
            filter by completed after date 
            (Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
          format: date-time
          in: query
          name: completedAfter
          type: string
        - description: filter by parent task ids
          in: query
          name: parentTaskId
          type: integer
        - default: '50'
          description: |-
            Number of items in a page 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          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 completer user id
          in: query
          name: completedByUserId
          type: integer
        - description: use start dates for todays tasks
          in: query
          name: useStartDatesForTodaysTasks
          type: boolean
        - description: filter on all projects
          in: query
          name: useAllProjects
          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 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
            missing estimated time.
          in: query
          name: onlyUnplanned
          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 from projects where the user is strictly a project admin.
            site 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 today
          in: query
          name: includeToday
          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
        - default: 'true'
          description: include tasks with cards
          in: query
          name: includeTasksWithCards
          type: boolean
        - description: include tasks from deleted lists
          in: query
          name: includeTasksFromDeletedLists
          type: boolean
        - description: 'include ids of completed and 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
        - default: 'false'
          description: include custom fields
          in: query
          name: includeCustomFields
          type: boolean
        - description: include completed tasks
          in: query
          name: includeCompletedTasks
          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 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: 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.
            This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
            and return it inside a special field.
          in: query
          name: extractTemplateRoleName
          type: boolean
        - description: exclude assignee not on project teams
          in: query
          name: excludeAssigneeNotOnProjectTeams
          type: boolean
        - default: 'false'
          description: only completed tasks
          in: query
          name: completedOnly
          type: boolean
        - description: check if task has reminders
          in: query
          name: checkForReminders
          type: boolean
        - default: 'true'
          description: |-
            when filtering by assigned or unassagned tasks, include assignees that
            are 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: 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

            0: not set
            1: bad
            2: ok
            3: 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: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tasklists
              - parentTasks
              - companies
              - teams
              - users
              - milestones
              - comments
              - comments.users
              - tags
              - cards
              - cards.columns
              - timeTotals
              - taskSequences
              - commentFollowers
              - changeFollowers
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
              - attachments
              - attachments.users
              - subtaskStats
              - timers
              - predecessors
              - permissions
            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
        - description: filter by board column ids
          in: query
          items:
            type: integer
          name: filterBoardColumnIds
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: 'fields[users]'
          type: array
        - in: query
          items:
            enum:
              - id
              - userId
              - taskId
              - projectId
              - description
              - running
              - billable
              - deleted
              - dateCreated
              - dateDeleted
              - duration
              - lastStartedAt
              - serverTime
              - intervals
            type: string
          name: 'fields[timers]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: 'fields[teams]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: 'fields[tasks]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: 'fields[tasklists]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - description
              - displayOrder
              - projectId
              - status
            type: string
          name: 'fields[taskgroups]'
          type: array
        - in: query
          items:
            enum:
              - id
              - installationId
              - frequency
              - selectedWeekDays
              - endDate
              - monthlyRepeatType
              - duration
              - rrule
            type: string
          name: 'fields[taskSequences]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: 'fields[tags]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - userID
              - updatedAt
              - itemType
              - itemID
              - grantAccessTo
            type: string
          name: 'fields[lockdowns]'
          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
              - name
              - color
              - displayOrder
              - createdAt
              - updatedAt
              - settings
              - sort
              - sortOrder
              - deletedAt
              - project
              - hasTriggers
              - deleted
              - stats
              - defaultTasklist
            type: string
          name: 'fields[columns]'
          type: array
        - in: query
          items:
            enum:
              - id
              - displayOrder
              - archived
              - archivedAt
              - archivedBy
              - createdAt
              - createBy
              - updatedAt
              - visible
              - status
              - deleteBy
              - deletedAt
            type: string
          name: 'fields[cards]'
          type: array
        - in: query
          items:
            enum:
              - viewMessagesAndFiles
              - viewTasksAndMilestones
              - viewTime
              - viewNotebooks
              - viewRiskRegister
              - viewEstimatedTime
              - viewInvoices
              - addTasks
              - addRisks
              - manageCustomFields
              - addExpenses
              - editAllTasks
              - addMilestones
              - addTaskLists
              - addMessages
              - addFiles
              - addTime
              - addNotebooks
              - viewLinks
              - addLinks
              - canViewForms
              - addForms
              - viewAllTimeLogs
              - setPrivacy
              - projectAdministrator
              - viewProjectUpdate
              - addProjectUpdate
              - canViewProjectMembers
              - canViewProjectBudget
              - canManageProjectBudget
              - canViewRates
              - canManageRates
              - canViewSchedule
              - canManageSchedule
              - receiveEmailNotifications
              - isObserving
              - isArchived
              - active
              - canAccess
              - inOwnerCompany
              - canManagePeople
              - canViewProjectTemplates
              - canManageProjectTemplates
            type: string
          name: 'fields[ProjectPermissions]'
          type: array
        - description: the ids of the expanded tasks
          in: query
          items:
            type: integer
          name: expandedIds
          type: array
        - description: filter by excluded tag ids
          in: query
          items:
            type: integer
          name: excludeTagIds
          type: array
        - description: filter by crm deal ids
          in: query
          items:
            type: integer
          name: crmDealIds
          type: array
        - description: filter by creator user ids
          in: query
          items:
            type: integer
          name: createdByUserIds
          type: array
        - description: filter by assignee team ids
          in: query
          items:
            type: integer
          name: assigneeTeamIds
          type: array
        - description: filter by assignee company ids
          in: query
          items:
            type: integer
          name: assigneeCompanyIds
          type: array
        - description: filter by custom fields
          in: query
          items:
            type: string
          name: CustomFields
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/task.tasksResponseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all tasks.
      tags:
        - Tasks
  /projects/api/v3/tasklists/{tasklistId}/tasks.json:
    post:
      consumes:
        - application/json
      description: Create a new task in the provided task list.
      operationId: POST_projects_api_v3_tasklists_{tasklistId}_tasks.json
      parameters:
        - in: body
          name: task.Request
          required: true
          schema:
            $ref: '#/definitions/task.Request'
        - in: path
          name: tasklistId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/task.responseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Creates a task.
      tags:
        - Tasks
      x-private: true
  '/projects/api/v3/tasks/{taskId}.json':
    get:
      description: Returns the information about a specific task.
      operationId: 'GET_projects_api_v3_tasks_{taskId}.json'
      parameters:
        - in: path
          name: taskId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/task.responseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
      summary: Get a specific task. - V3
      tags:
        - Tasks
    delete:
      description: Delete a task and its subtasks.
      operationId: 'DELETE_projects_api_v3_tasks_{taskId}.json'
      parameters:
        - in: path
          name: taskId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '204':
          description: 204 No Content (no data)
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
      summary: Delete an existing task. - V3
      tags:
        - Tasks
      x-private: true
    patch:
      consumes:
        - application/json
      description: Modify the properties of an existing task.
      operationId: 'PATCH_projects_api_v3_tasks_{taskId}.json'
      parameters:
        - in: body
          name: task.Request
          required: true
          schema:
            $ref: '#/definitions/task.Request'
        - in: path
          name: taskId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/task.responseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
        '409':
          description: 409 Conflict
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Update an existing task. - V3
      tags:
        - Tasks
      x-private: true
  /projects/api/v3/tasklists:
    get:
      operationId: GET_projects_api_v3_tasklists
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by search term
          in: query
          name: searchTerm
          type: string
        - description: filter by project type
          in: query
          name: projectType
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: displayorder
          description: order by
          enum:
            - displayorder
            - name
            - status
            - createdat
            - updatedat
            - project
          in: query
          name: orderBy
          type: string
        - default: nil
          description: |-
            filter the task list budget by its parent project budget id, if none
            is provided it weill default to the current active budget.
          in: query
          name: projectBudgetId
          type: integer
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: use formula fields
          in: query
          name: useFormulaFields
          type: boolean
        - default: 'false'
          description: sort active lists first
          in: query
          name: sortActiveListsFirst
          type: boolean
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance 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 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: filter by project ids
          in: query
          items:
            type: integer
          name: projectIds
          type: array
        - description: filter by project company ids
          in: query
          items:
            type: integer
          name: projectCompanyIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - defaultTasks
              - defaultTasks.users
              - defaultTasks.teams
              - defaultTasks.reminders
              - defaultTasks.customfields
              - defaultTasks.companies
              - createdBy
              - updatedBy
              - companies
              - projects
              - milestones
              - defaultCustomfields
              - defaultCustomfieldTasks
              - defaultColumns
              - defaultWorkflowStage
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
            type: string
          name: include
          type: array
        - description: filter by ids
          in: query
          items:
            type: integer
          name: ids
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: fields[users]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: fields[teams]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - 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
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/tasklist.TasklistsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all tasklists
      tags:
        - Task lists
  /projects/api/v3/tasklists/{tasklistId}:
    get:
      operationId: GET_projects_api_v3_tasklists_{tasklistId}
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by search term
          in: query
          name: searchTerm
          type: string
        - description: filter by project type
          in: query
          name: projectType
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: displayorder
          description: order by
          enum:
            - displayorder
            - name
            - status
            - createdat
            - updatedat
            - project
          in: query
          name: orderBy
          type: string
        - in: path
          name: tasklistId
          required: true
          type: integer
        - default: nil
          description: |-
            filter the task list budget by its parent project budget id, if none
            is provided it weill default to the current active budget.
          in: query
          name: projectBudgetId
          type: integer
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: use formula fields
          in: query
          name: useFormulaFields
          type: boolean
        - default: 'false'
          description: sort active lists first
          in: query
          name: sortActiveListsFirst
          type: boolean
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance 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 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: filter by project ids
          in: query
          items:
            type: integer
          name: projectIds
          type: array
        - description: filter by project company ids
          in: query
          items:
            type: integer
          name: projectCompanyIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - defaultTasks
              - defaultTasks.users
              - defaultTasks.teams
              - defaultTasks.reminders
              - defaultTasks.customfields
              - defaultTasks.companies
              - createdBy
              - updatedBy
              - companies
              - projects
              - milestones
              - defaultCustomfields
              - defaultCustomfieldTasks
              - defaultColumns
              - defaultWorkflowStage
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
            type: string
          name: include
          type: array
        - description: filter by ids
          in: query
          items:
            type: integer
          name: ids
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: fields[users]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: fields[teams]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - 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
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/tasklist.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get specific tasklist
      tags:
        - Task lists
  /projects/api/v3/projects/{projectId}/tasklists:
    get:
      operationId: GET_projects_api_v3_projects_{projectId}_tasklists
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by search term
          in: query
          name: searchTerm
          type: string
        - description: filter by project type
          in: query
          name: projectType
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: displayorder
          description: order by
          enum:
            - displayorder
            - name
            - status
            - createdat
            - updatedat
            - project
          in: query
          name: orderBy
          type: string
        - in: path
          name: projectId
          required: true
          type: integer
        - default: nil
          description: |-
            filter the task list budget by its parent project budget id, if none
            is provided it weill default to the current active budget.
          in: query
          name: projectBudgetId
          type: integer
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: use formula fields
          in: query
          name: useFormulaFields
          type: boolean
        - default: 'false'
          description: sort active lists first
          in: query
          name: sortActiveListsFirst
          type: boolean
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance 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 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: filter by project ids
          in: query
          items:
            type: integer
          name: projectIds
          type: array
        - description: filter by project company ids
          in: query
          items:
            type: integer
          name: projectCompanyIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - defaultTasks
              - defaultTasks.users
              - defaultTasks.teams
              - defaultTasks.reminders
              - defaultTasks.customfields
              - defaultTasks.companies
              - createdBy
              - updatedBy
              - companies
              - projects
              - milestones
              - defaultCustomfields
              - defaultCustomfieldTasks
              - defaultColumns
              - defaultWorkflowStage
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
            type: string
          name: include
          type: array
        - description: filter by ids
          in: query
          items:
            type: integer
          name: ids
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: fields[users]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: fields[teams]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - 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
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/tasklist.TasklistsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get tasklists in a project
      tags:
        - Task lists
  /projects/{id}/tasklists.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    post:
      operationId: POST_projects-id-tasklists-json
      summary: Create Task List
      tags:
        - Task lists
      description: |-
        Creates a new task list based on the submitted JSON or XML data. If you wish to base the new list on a task list template that youâ€™ve created previously, you can specify the todo-list-template-id field in the data, and the new list will default to the name, description, and tasks indicated by that template.

        <h4>Additional notes:</h4>

        <h4>Task List Template Options</h4>
        When you're creating the tasklist using a todo-list-template-id you can pass the following:

        - todo-list-template-id
        - todo-list-template-start-date (Blank or YYYYMMDD format e.g: 20150314)
        - todo-list-template-keep-off-weekends (Boolean: default false)
        - todo-list-template-assignments (Blank or struct): The format of the todo-list-template-assignments struct should be the defined role name in creation of the Task List Template, and the value being a comma separated list of user-ids to assign the task to.

        <h4>Additonal Options</h4>
        You can pass 'addToTop:true' to force the new item to the top of the tasklists list. The default is false which adds the item to the bottom of the list of tasklists.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              applyDefaultsToExistingTasks:
                type: boolean
                description: 'Will over ride existing tasks in the task list with these new defaults. '
                default: false
              todo-list:
                type: object
                properties:
                  new-task-defaults:
                    type: object
                    description: The defaults you choose will apply to the individual tasks added to the task list.
                    properties:
                      description:
                        type: string
                        description: 'Default description on all tasks created in this task list. '
                      start-date-offset:
                        type: string
                        example: '1'
                        description: Start date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
                      due-date-offset:
                        type: string
                        description: Due date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
                        example: '10'
                      responsible-party-id:
                        type: string
                        description: Who should do this - choose specific person id, company id, or team id to be assigned to tasks.
                      priority:
                        type: integer
                      priorityText:
                        type: string
                        description: 'low, medium, high prority of the tasks. '
                      estimated-minutes:
                        type: integer
                      tags:
                        type: array
                        description: Default tags for tasks in this task list.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            color:
                              type: string
                            name:
                              type: string
                            projectId:
                              type: integer
                      column-id:
                        type: integer
                      reminders:
                        type: array
                        items:
                          type: object
                          properties:
                            user-id:
                              type: integer
                            type:
                              type: string
                            note:
                              type: string
                            people-assigned:
                              type: boolean
                            isRelative:
                              type: boolean
                            relative-number-days:
                              type: integer
                            usingOffSetDueDate:
                              type: boolean
                            time:
                              type: string
                      removeAllReminders:
                        type: boolean
                      comment-follower-ids:
                        type: string
                        description: 'ids of users, teams, companies that you want to follow these tasks. '
                      change-follower-ids:
                        type: string
                        description: 'ids of users, teams, companies that you want to follow these tasks. '
                      grant-access-to:
                        type: string
                        description: ids of users, teams, companies that you want to have access to these tasks. Default permissions will be used if none are provided here.
                      private:
                        type: boolean
                      customFields:
                        type: array
                        description: array of custom fields. Use the custom field endpoint in V3 to create a custom field.
                        items:
                          type: object
                          properties:
                            customFieldId:
                              type: integer
                            value:
                              type: string
                      pendingFileAttachments:
                        type: array
                        description: Default attachments for tasks under this task list.
                        items:
                          type: object
      responses:
        '201':
          description: ''
          schema:
            type: object
            properties:
              TASKLISTID:
                type: string
              STATUS:
                type: string
          examples:
            application/json:
              TASKLISTID: '1234'
              STATUS: OK
    put:
      operationId: PUT_tasklists-id-json
      summary: Update Task List
      tags:
        - Task lists
      description: |-
        Updates the specified task list record with the changes indicated by the submitted data.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              applyDefaultsToExistingTasks:
                type: boolean
                description: 'Will over ride existing tasks in the task list with these new defaults. '
                default: false
              todo-list:
                type: object
                properties:
                  new-task-defaults:
                    type: object
                    description: The defaults you choose will apply to the individual tasks added to the task list.
                    properties:
                      description:
                        type: string
                        description: 'Default description on all tasks created in this task list. '
                      start-date-offset:
                        type: string
                        example: '1'
                        description: Start date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
                      due-date-offset:
                        type: string
                        description: Due date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
                        example: '10'
                      responsible-party-id:
                        type: string
                        description: Who should do this - choose specific person id, company id, or team id to be assigned to tasks.
                      priority:
                        type: integer
                      priorityText:
                        type: string
                        description: 'low, medium, high prority of the tasks. '
                      estimated-minutes:
                        type: integer
                      tags:
                        type: array
                        description: Default tags for tasks in this task list.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            color:
                              type: string
                            name:
                              type: string
                            projectId:
                              type: integer
                      column-id:
                        type: integer
                      reminders:
                        type: array
                        items:
                          type: object
                          properties:
                            user-id:
                              type: integer
                            type:
                              type: string
                            note:
                              type: string
                            people-assigned:
                              type: boolean
                            isRelative:
                              type: boolean
                            relative-number-days:
                              type: integer
                            usingOffSetDueDate:
                              type: boolean
                            time:
                              type: string
                      removeAllReminders:
                        type: boolean
                      comment-follower-ids:
                        type: string
                        description: 'ids of users, teams, companies that you want to follow these tasks. '
                      change-follower-ids:
                        type: string
                        description: 'ids of users, teams, companies that you want to follow these tasks. '
                      grant-access-to:
                        type: string
                        description: ids of users, teams, companies that you want to have access to these tasks. Default permissions will be used if none are provided here.
                      private:
                        type: boolean
                      customFields:
                        type: array
                        description: array of custom fields. Use the custom field endpoint in V3 to create a custom field.
                        items:
                          type: object
                          properties:
                            customFieldId:
                              type: integer
                            value:
                              type: string
                      pendingFileAttachments:
                        type: array
                        description: Default attachments for tasks under this task list.
                        items:
                          type: object
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /projects/{id}/tasklists/reorder.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_projects-id-tasklists-reorder-json
      summary: Reorder Lists
      tags:
        - Task lists
      description: |-
        Whatever task you pass in here will go on the top of the task list. Everything else will get pushed down underneath.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              todo-lists:
                type: array
                items:
                  type: object
                  properties:
                    todo-list:
                      type: object
                      properties:
                        id:
                          type: string
            example:
              todo-lists:
                - todo-list:
                    id: '1000'
                - todo-list:
                    id: '999'
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /tasklist/{id}/copy.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_tasklist-id-copy-json
      summary: Copy a Task List, or Copy a Task List to another Project
      tags:
        - Task lists
      description: |-
        To copy a task list, use the ID of the task list you want to copy in the URL. Inside the body of the request, use the project ID you want to copy the task list too. You can also decide to include completed tasks when copying over. 

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              projectId:
                type: integer
              includeCompletedTasks:
                type: integer
            example:
              projectId: 999
              includeCompletedTasks: 1
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /tasklist/{id}/move.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_tasklist-id-move-json
      summary: Move a Task List to another Project
      tags:
        - Task lists
      description: '---'
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              projectId:
                type: string
            required:
              - projectId
            example:
              projectId: '999'
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /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:
        - Task lists
  /tasklists/templates.json:
    get:
      operationId: GET_tasklists-templates-json
      summary: 'Template Task Lists: get all template task lists'
      tags:
        - Task lists
      description: |-
        Please note: This is only available for API Keys associated with Administrators in the Owner Company.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              tasklists:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    description:
                      type: string
                    uncompleted-count:
                      type: string
                    id:
                      type: string
                    complete:
                      type: boolean
                    private:
                      type: boolean
                    position:
                      type: string
              STATUS:
                type: string
          examples:
            application/json:
              tasklists:
                - name: Example Template
                  description: ''
                  uncompleted-count: '2'
                  id: '830'
                  complete: false
                  private: false
                  position: '3996'
              STATUS: OK
  /projects/api/v3/milestones.json:
    get:
      description: |-
        All milestones are returned on projects that the authenticated user is
        associated with. You can use the provided filters to return only those
        milestones that are incomplete, completed, upcoming or late. All milestones
        are returning in this call. This call uses pagination, returning 100
        milestones 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 by project status
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: order by
          enum:
            - date
            - dateonly
            - name
            - project
            - user
            - dateCreated
            - dateUpdated
          in: query
          name: orderBy
          type: string
        - description: filter by due before date (deprecated, use dueBefore)
          format: date
          in: query
          name: dueBeforeDate
          type: string
        - description: filter by due before date
          format: date
          in: query
          name: dueBefore
          type: string
        - description: filter by due after date (deprecated, use dueAfter)
          format: date
          in: query
          name: dueAfterDate
          type: string
        - description: filter by due after date
          format: date
          in: query
          name: dueAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - 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: 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.
            site 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: '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
              - users
              - completedBy
              - createdBy
              - deletedBy
              - updatedBy
              - commentFollowers
              - changeFollowers
              - 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: 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
              - 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 assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/milestone.MilestonesResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all milestones
      tags:
        - Milestones
  /projects/api/v3/milestones/{milestonId}.json:
    get:
      description: This returns all details about an individual milestone.
      operationId: GET_projects_api_v3_milestones_{milestonId}.json
      parameters:
        - description: filter by updated after date (deprecated, use updatedAfter)
          format: date-time
          in: query
          name: updatedAfterDate
          type: string
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by milestone name and description
          in: query
          name: searchTerm
          type: string
        - default: agenda
          description: define the type of the report
          enum:
            - plannedvsactual
            - calendar
            - agenda
          in: query
          name: reportType
          type: string
        - description: define the format of the report
          in: query
          name: reportFormat
          type: string
        - description: filter by project status
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: order by
          enum:
            - date
            - dateonly
            - name
            - project
            - user
            - dateCreated
            - dateUpdated
          in: query
          name: orderBy
          type: string
        - description: filter by due before date (deprecated, use dueBefore)
          format: date
          in: query
          name: dueBeforeDate
          type: string
        - description: filter by due before date
          format: date
          in: query
          name: dueBefore
          type: string
        - description: filter by due after date (deprecated, use dueAfter)
          format: date
          in: query
          name: dueAfterDate
          type: string
        - description: filter by due after date
          format: date
          in: query
          name: dueAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - in: path
          name: milestonId
          required: true
          type: integer
        - 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: 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.
            site 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: '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
              - users
              - completedBy
              - createdBy
              - deletedBy
              - updatedBy
              - commentFollowers
              - changeFollowers
              - 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: 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
              - 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 assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/milestone.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get a milestone by id.
      tags:
        - Milestones
  /projects/api/v3/projects/{projectId}/milestones.json:
    get:
      description: |-
        This lets you query the list of milestones for a project. You can use the
        provided filters to return only those milestones that are incomplete,
        completed, upcoming or late. This call uses pagination, returning 100
        milestones 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 by project status
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: order by
          enum:
            - date
            - dateonly
            - name
            - project
            - user
            - dateCreated
            - dateUpdated
          in: query
          name: orderBy
          type: string
        - description: filter by due before date (deprecated, use dueBefore)
          format: date
          in: query
          name: dueBeforeDate
          type: string
        - description: filter by due before date
          format: date
          in: query
          name: dueBefore
          type: string
        - description: filter by due after date (deprecated, use dueAfter)
          format: date
          in: query
          name: dueAfterDate
          type: string
        - description: filter by due after date
          format: date
          in: query
          name: dueAfter
          type: string
        - in: path
          name: projectId
          required: true
          type: integer
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - 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: 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.
            site 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: '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
              - users
              - completedBy
              - createdBy
              - deletedBy
              - updatedBy
              - commentFollowers
              - changeFollowers
              - 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: 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
              - 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 assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/milestone.MilestonesResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get milestones in a project
      tags:
        - Milestones
  /projects/api/v3/milestones/metrics/deadlines.json:
    get:
      description: |-
        Count the number of milestones on each deadline date. Only the milestones
        that 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/{id}/milestones.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    post:
      operationId: POST_projects-id-milestones-json
      summary: Create a Single Milestone
      tags:
        - Milestones
      description: |-
        This API call will create a single milestone.

        NOTE:
        For creating a milestone, only the parameters that are required are title, deadline and responsible party.
        For updating, only the parameter you are updating is required in the body.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              milestone:
                type: object
                properties:
                  changeFollowerIds:
                    type: string
                  description:
                    type: string
                  deadline:
                    type: string
                    description: 'Date field for milestone due date. Passed in as string format: YYYYMMDD'
                    example: '20211212'
                  notify:
                    type: boolean
                  responsible-party-ids:
                    type: string
                  tagIds:
                    type: string
                  reminder:
                    type: boolean
                  title:
                    type: string
                  taskListIds:
                    type: array
                    items:
                      type: string
                  grant-access-to:
                    type: string
                  private:
                    type: boolean
              move-upcoming-milestones:
                type: boolean
              move-upcoming-milestones-off-weekends:
                type: boolean
      responses:
        '201':
          description: ''
          schema:
            type: object
            properties:
              milestoneid:
                type: integer
              STATUS:
                type: string
          examples:
            application/json:
              milestoneid: 1234
              STATUS: OK
  /milestones/{id}/complete.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_milestones-id-complete-json
      summary: Complete a Milestone
      tags:
        - Milestones
      description: |-
        Marks the specified milestone as complete.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /milestones/{id}/uncomplete.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_milestones-id-uncomplete-json
      summary: Un-complete a Milestone
      tags:
        - Milestones
      description: |-
        Marks the specified milestone as un-complete.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /milestones/{id}.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_milestones-id-json
      summary: Update a Single Milestone
      tags:
        - Milestones
      description: |-
        Modifies a single milestone. You can use this to shift the deadline of a single milestone, and optionally shift the deadlines of subsequent milestones as well.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              milestone:
                type: object
                properties:
                  changeFollowerIds:
                    type: string
                  description:
                    type: string
                  deadline:
                    type: string
                    description: 'Milestone due date. Passed in as string format: YYYYMMDD'
                    example: '20211212'
                  notify:
                    type: boolean
                  responsible-party-ids:
                    type: string
                  tagIds:
                    type: string
                  reminder:
                    type: boolean
                  title:
                    type: string
                  taskListIds:
                    type: array
                    items:
                      type: string
                  grant-access-to:
                    type: string
                  private:
                    type: boolean
              move-upcoming-milestones:
                type: boolean
              move-upcoming-milestones-off-weekends:
                type: boolean
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
    delete:
      operationId: DELETE_milestones-id-json
      summary: Delete a Milestone
      tags:
        - Milestones
      description: |-
        Deletes the milestone.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /projects/api/v3/time.json:
    get:
      description: |-
        Return all logged time entries for all projects. Only the time entries that
        the logged-in user can access will be returned.
      operationId: GET_projects_api_v3_time.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by a starting date
          format: date-time
          in: query
          name: startDate
          type: string
        - description: define the format of the report
          in: query
          name: reportFormat
          type: string
        - description: filter by project status
          enum:
            - active
            - current
            - late
            - upcoming
            - completed
            - deleted
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: sort order
          enum:
            - company
            - date
            - dateupdated
            - project
            - task
            - tasklist
            - user
            - description
            - billed
            - billable
            - timespent
          in: query
          name: orderBy
          type: string
        - default: all
          description: filter by invoiced type
          enum:
            - all
            - invoiced
            - noninvoiced
          in: query
          name: invoicedType
          type: string
        - description: filter by an ending date
          format: date-time
          in: query
          name: endDate
          type: string
        - default: all
          description: filter by billable type
          enum:
            - all
            - billable
            - non-billable
          in: query
          name: billableType
          type: string
        - description: filter by the user who updated the timelog
          in: query
          name: updatedBy
          type: integer
        - description: filter by ticket id
          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
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          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: 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
            performance 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
        - description: match all task tags
          in: query
          name: matchAllTaskTags
          type: boolean
        - description: match all tags
          in: query
          name: matchAllTags
          type: boolean
        - description: match all project tags
          in: query
          name: matchAllProjectTags
          type: boolean
        - description: generate a report document
          in: query
          name: isReportDownload
          type: boolean
        - default: 'false'
          description: include totals
          in: query
          name: includeTotals
          type: boolean
        - default: 'false'
          description: include 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
        - description: filter by task tag ids
          in: query
          items:
            type: integer
          name: taskTagIds
          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

            0: not set
            1: bad
            2: ok
            3: 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
          in: query
          items:
            type: integer
          name: projectCategoryIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tags
              - tasks
              - tasks.parentTasks
              - tasks.tasklists
              - tasks.users
              - 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
              - dateCreated
              - minutes
              - description
              - timeLogged
              - billable
              - deleted
              - dateDeleted
              - hasStartTime
              - dateEdited
              - deskTicketId
              - userId
              - taskId
              - projectId
              - loggedByUserId
              - deletedByUserId
              - editedByUserId
              - taskIdPreMove
              - projectBillingInvoiceId
            type: string
          name: fields[timelogs]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: fields[tasks]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: fields[tasklists]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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
              - logoUploadedToServer
              - logoImage
            type: string
          name: fields[companies]
          type: array
        - description: filter by assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedTeamIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timelog.TimelogsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all time entries
      tags:
        - Time Tracking
  /projects/api/v3/tasks/{taskId}/time/total.json:
    get:
      operationId: GET_projects_api_v3_tasks_{taskId}_time_total.json
      parameters:
        - in: path
          name: taskId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timelog.TotalsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get timelog totals for a specific task.
      tags:
        - Time Tracking
  /projects/api/v3/projects/{projectId}/time.json:
    get:
      description: |-
        Return logged time entries for a specific project. Only the time entries that
        the logged-in user can access will be returned.
      operationId: GET_projects_api_v3_projects_{projectId}_time.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by a starting date
          format: date-time
          in: query
          name: startDate
          type: string
        - description: define the format of the report
          in: query
          name: reportFormat
          type: string
        - description: filter by project status
          enum:
            - active
            - current
            - late
            - upcoming
            - completed
            - deleted
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: sort order
          enum:
            - company
            - date
            - dateupdated
            - project
            - task
            - tasklist
            - user
            - description
            - billed
            - billable
            - timespent
          in: query
          name: orderBy
          type: string
        - default: all
          description: filter by invoiced type
          enum:
            - all
            - invoiced
            - noninvoiced
          in: query
          name: invoicedType
          type: string
        - description: filter by an ending date
          format: date-time
          in: query
          name: endDate
          type: string
        - default: all
          description: filter by billable type
          enum:
            - all
            - billable
            - non-billable
          in: query
          name: billableType
          type: string
        - description: filter by the user who updated the timelog
          in: query
          name: updatedBy
          type: integer
        - description: filter by ticket id
          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
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          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: 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
            performance 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
        - description: match all task tags
          in: query
          name: matchAllTaskTags
          type: boolean
        - description: match all tags
          in: query
          name: matchAllTags
          type: boolean
        - description: match all project tags
          in: query
          name: matchAllProjectTags
          type: boolean
        - description: generate a report document
          in: query
          name: isReportDownload
          type: boolean
        - default: 'false'
          description: include totals
          in: query
          name: includeTotals
          type: boolean
        - default: 'false'
          description: include 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
        - description: filter by task tag ids
          in: query
          items:
            type: integer
          name: taskTagIds
          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

            0: not set
            1: bad
            2: ok
            3: 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
          in: query
          items:
            type: integer
          name: projectCategoryIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tags
              - tasks
              - tasks.parentTasks
              - tasks.tasklists
              - tasks.users
              - 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
              - dateCreated
              - minutes
              - description
              - timeLogged
              - billable
              - deleted
              - dateDeleted
              - hasStartTime
              - dateEdited
              - deskTicketId
              - userId
              - taskId
              - projectId
              - loggedByUserId
              - deletedByUserId
              - editedByUserId
              - taskIdPreMove
              - projectBillingInvoiceId
            type: string
          name: fields[timelogs]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: fields[tasks]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: fields[tasklists]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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
              - logoUploadedToServer
              - logoImage
            type: string
          name: fields[companies]
          type: array
        - description: filter by assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedTeamIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timelog.TimelogsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get time entries for a specific project
      tags:
        - Time Tracking
    post:
      consumes:
        - application/json
      description: Create a time entry in the desired project.
      operationId: POST_projects_api_v3_projects_{projectId}_time.json
      parameters:
        - in: body
          name: timelog.Request
          required: true
          schema:
            $ref: '#/definitions/timelog.Request'
        - in: path
          name: projectId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/timelog.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Create a time entry in a specific project.
      tags:
        - Time Tracking
      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
        the logged-in user can access will be returned.
      operationId: GET_projects_api_v3_tasks_{taskId}_time.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by a starting date
          format: date-time
          in: query
          name: startDate
          type: string
        - description: define the format of the report
          in: query
          name: reportFormat
          type: string
        - description: filter by project status
          enum:
            - active
            - current
            - late
            - upcoming
            - completed
            - deleted
          in: query
          name: projectStatus
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: date
          description: sort order
          enum:
            - company
            - date
            - dateupdated
            - project
            - task
            - tasklist
            - user
            - description
            - billed
            - billable
            - timespent
          in: query
          name: orderBy
          type: string
        - default: all
          description: filter by invoiced type
          enum:
            - all
            - invoiced
            - noninvoiced
          in: query
          name: invoicedType
          type: string
        - description: filter by an ending date
          format: date-time
          in: query
          name: endDate
          type: string
        - default: all
          description: filter by billable type
          enum:
            - all
            - billable
            - non-billable
          in: query
          name: billableType
          type: string
        - description: filter by the user who updated the timelog
          in: query
          name: updatedBy
          type: integer
        - description: filter by ticket id
          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
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          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: 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
            performance 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
        - description: match all task tags
          in: query
          name: matchAllTaskTags
          type: boolean
        - description: match all tags
          in: query
          name: matchAllTags
          type: boolean
        - description: match all project tags
          in: query
          name: matchAllProjectTags
          type: boolean
        - description: generate a report document
          in: query
          name: isReportDownload
          type: boolean
        - default: 'false'
          description: include totals
          in: query
          name: includeTotals
          type: boolean
        - default: 'false'
          description: include 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
        - description: filter by task tag ids
          in: query
          items:
            type: integer
          name: taskTagIds
          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

            0: not set
            1: bad
            2: ok
            3: 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
          in: query
          items:
            type: integer
          name: projectCategoryIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tags
              - tasks
              - tasks.parentTasks
              - tasks.tasklists
              - tasks.users
              - 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
              - dateCreated
              - minutes
              - description
              - timeLogged
              - billable
              - deleted
              - dateDeleted
              - hasStartTime
              - dateEdited
              - deskTicketId
              - userId
              - taskId
              - projectId
              - loggedByUserId
              - deletedByUserId
              - editedByUserId
              - taskIdPreMove
              - projectBillingInvoiceId
            type: string
          name: fields[timelogs]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: fields[tasks]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: fields[tasklists]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: fields[tags]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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
              - logoUploadedToServer
              - logoImage
            type: string
          name: fields[companies]
          type: array
        - description: filter by assigned user ids
          in: query
          items:
            type: integer
          name: assignedToUserIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedToTeamIds
          type: array
        - description: filter by assigned company ids
          in: query
          items:
            type: integer
          name: assignedToCompanyIds
          type: array
        - description: filter by assigned team ids
          in: query
          items:
            type: integer
          name: assignedTeamIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timelog.TimelogsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get time entries for a specific task
      tags:
        - Time Tracking
    post:
      consumes:
        - application/json
      description: Create a time entry linked to the desired task.
      operationId: POST_projects_api_v3_tasks_{taskId}_time.json
      parameters:
        - in: body
          name: timelog.Request
          required: true
          schema:
            $ref: '#/definitions/timelog.Request'
        - in: path
          name: taskId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/timelog.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Create a time entry linked to a specific task.
      tags:
        - Time Tracking
      x-private: true
  /projects/api/v3/time/{timelogId}.json:
    patch:
      consumes:
        - application/json
      description: Modify the properties of an existing time entry.
      operationId: PATCH_projects_api_v3_time_{timelogId}.json
      parameters:
        - in: body
          name: timelog.Request
          required: true
          schema:
            $ref: '#/definitions/timelog.Request'
        - in: path
          name: timelogId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timelog.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
        '409':
          description: 409 Conflict
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Update an existing time entry.
      tags:
        - Time Tracking
      x-private: true
    delete:
      description: Delete a timelog.
      operationId: DELETE_projects_api_v3_time_{timelogId}.json
      parameters:
        - in: path
          name: timelogId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '204':
          description: 204 No Content (no data)
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
      summary: Delete an existing timelog.
      tags:
        - Time Tracking
      x-private: true
  /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
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance 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
              - tasks
              - tasks.parentTasks
              - tasks.tasklists
              - users
            type: string
          name: include
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: fields[users]
          type: array
        - in: query
          items:
            enum:
              - id
              - userId
              - taskId
              - projectId
              - description
              - running
              - billable
              - deleted
              - dateCreated
              - dateDeleted
              - duration
              - lastStartedAt
              - serverTime
              - intervals
            type: string
          name: fields[timers]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: fields[tasks]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: fields[tasklists]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            type: 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:
        - Time Tracking
    post:
      consumes:
        - application/json
      description: |-
        Creates a new timer. If there's already a timer running, it will stop this timer
        at default.
      operationId: POST_projects_api_v3_me_timers.json
      parameters:
        - in: body
          name: timer.Request
          required: true
          schema:
            $ref: '#/definitions/timer.Request'
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/timer.Response'
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/timer.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Create a new timer
      tags:
        - Time Tracking
  /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
        the 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:
        - Time Tracking
  /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:
        - Time Tracking
  /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:
        - Time Tracking
  /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:
        - Time Tracking
  /projects/api/v3/me/timers/{timerId}.json:
    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:
        - Time Tracking
    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:
        - Time Tracking
  /projects/api/v3/messages.json:
    get:
      description: Retrieve all messages for the provided filters.
      operationId: GET_projects_api_v3_messages.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by message name and body
          in: query
          name: searchTerm
          type: string
        - default: normal
          description: filter by project type
          enum:
            - normal
            - tasklists-template
            - projects-template
          in: query
          name: projectType
          type: string
        - description: filter by project statuses
          in: query
          name: projectStatuses
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: ownermessage
          description: order by
          enum:
            - createdat
            - updatedat
            - category
            - project
            - createdby
            - unread
          in: query
          name: orderBy
          type: string
        - description: filter by created before date
          format: date-time
          in: query
          name: createdBefore
          type: string
        - description: filter by created after date
          format: date-time
          in: query
          name: createdAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          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
            performance 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

            0: not set
            1: bad
            2: ok
            3: 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: string
          name: fields[projects]
          type: array
        - in: query
          items:
            enum:
              - id
              - messageId
            type: string
          name: fields[messageReplies]
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - logoUploadedToServer
              - logoImage
            type: string
          name: fields[companies]
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/message.MessagesResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all messages.
      tags:
        - Messages
  /projects/api/v3/messages/{messageId}.json:
    get:
      description: Retrieves a message by id.
      operationId: GET_projects_api_v3_messages_{messageId}.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by message name and body
          in: query
          name: searchTerm
          type: string
        - default: normal
          description: filter by project type
          enum:
            - normal
            - tasklists-template
            - projects-template
          in: query
          name: projectType
          type: string
        - description: filter by project statuses
          in: query
          name: projectStatuses
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: ownermessage
          description: order by
          enum:
            - createdat
            - updatedat
            - category
            - project
            - createdby
            - unread
          in: query
          name: orderBy
          type: string
        - description: filter by created before date
          format: date-time
          in: query
          name: createdBefore
          type: string
        - description: filter by created after date
          format: date-time
          in: query
          name: createdAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          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
            performance 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

            0: not set
            1: bad
            2: ok
            3: 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: string
          name: fields[projects]
          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
        value `true` all replies from this message will be marked as read.
      operationId: PATCH_projects_api_v3_messages_{messageId}.json
      parameters:
        - in: body
          name: message.Request
          required: true
          schema:
            $ref: '#/definitions/message.Request'
        - in: path
          name: messageId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '204':
          description: 204 No Content (no data)
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Edit a message.
      tags:
        - Messages
      x-private: true
  /projects/{id}/posts/archive.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    get:
      operationId: GET_projects-id-posts-archive-json
      summary: Get Archived Messages
      tags:
        - Messages
      description: |-
        Rather than the full message, this returns a summary record for each message in the specified project.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              posts:
                type: array
                items:
                  type: object
                  properties:
                    user-display-posted-time:
                      type: string
                    project-id:
                      type: string
                    author-first-name:
                      type: string
                    attachments-count:
                      type: string
                    milestone-id:
                      type: string
                    isRead:
                      type: string
                    private:
                      type: string
                    comments-count:
                      type: string
                    author-avatar-url:
                      type: string
                    category-id:
                      type: string
                    author-last-name:
                      type: string
                    posted-on:
                      type: string
                    body:
                      type: string
                    id:
                      type: string
                    last-changed-on:
                      type: string
                    content-type:
                      type: string
                    last-comment-date:
                      type: string
                    user-display-posted-date:
                      type: string
                    author-id:
                      type: string
                    title:
                      type: string
                    category-name:
                      type: string
              STATUS:
                type: string
          examples:
            application/json:
              posts:
                - user-display-posted-time: 6:01PM
                  project-id: '999'
                  author-first-name: Demo
                  attachments-count: '0'
                  milestone-id: ''
                  isRead: '1'
                  private: '0'
                  comments-count: '0'
                  author-avatar-url: https://s3.amazonaws.com/TWFiles/2/users/999.avatar
                  category-id: ''
                  author-last-name: User
                  posted-on: '2014-03-31T18:01:17Z'
                  body: Yet another message content goes here
                  id: '999'
                  last-changed-on: '2014-03-31T18:01:17Z'
                  content-type: TEXT
                  last-comment-date: '2014-03-31T18:01:17Z'
                  user-display-posted-date: Mon, 31 Mar 2014
                  author-id: '999'
                  title: Yet another task for tomorrow
                  category-name: ''
              STATUS: OK
  /projects/{projectId}/cat/{categoryId}/posts/archive.json:
    parameters:
      - name: projectId
        in: path
        required: true
        type: string
      - name: categoryId
        in: path
        required: true
        type: string
    get:
      operationId: GET_projects-project_id-cat-category_id-posts-archive-json
      summary: Get Archived Messages by Category
      tags:
        - Messages
      description: |-
        Similar to get archived messages, but returns only the posts in the given category.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              posts:
                type: array
                items:
                  type: object
                  properties:
                    user-display-posted-time:
                      type: string
                    project-id:
                      type: string
                    author-first-name:
                      type: string
                    attachments-count:
                      type: string
                    milestone-id:
                      type: string
                    isRead:
                      type: string
                    private:
                      type: string
                    comments-count:
                      type: string
                    author-avatar-url:
                      type: string
                    category-id:
                      type: string
                    author-last-name:
                      type: string
                    html-body:
                      type: string
                    posted-on:
                      type: string
                    body:
                      type: string
                    id:
                      type: string
                    last-changed-on:
                      type: string
                    content-type:
                      type: string
                    last-comment-date:
                      type: string
                    user-display-posted-date:
                      type: string
                    author-id:
                      type: string
                    title:
                      type: string
                    category-name:
                      type: string
              STATUS:
                type: string
          examples:
            application/json:
              posts:
                - user-display-posted-time: 5:59PM
                  project-id: '999'
                  author-first-name: Demo
                  attachments-count: '0'
                  milestone-id: ''
                  isRead: '1'
                  private: '0'
                  comments-count: '0'
                  author-avatar-url: https://s3.amazonaws.com/TWFiles/2/users/999.avatar
                  category-id: '999'
                  author-last-name: User
                  html-body: Another message content goes here<br>
                  posted-on: '2014-03-31T17:59:49Z'
                  body: "Another message content goes here\r\n"
                  id: '999'
                  last-changed-on: '2014-03-31T17:31:45Z'
                  content-type: HTML
                  last-comment-date: '2014-03-31T17:59:49Z'
                  user-display-posted-date: Mon, 31 Mar 2014
                  author-id: '999'
                  title: Another task for tomorrow
                  category-name: Demo Category 3
              STATUS: OK
  /messages/{id}/archive.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_messages-id-archive-json
      summary: Archive a Message
      tags:
        - Messages
      description: |-
        Archives the message including all replies etc.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /messages/{id}/unarchive.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_messages-id-unarchive-json
      summary: Un-archive a Message
      tags:
        - Messages
      description: |-
        Restores the message from the Archive including all replies etc.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /messages/{id}/markread.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    put:
      operationId: PUT_messages-id-markread-json
      summary: Mark Message As Read
      tags:
        - Messages
      description: |-
        Marks a specific message as read by the current authenticated user.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /posts/{id}.json:
    parameters:
      - name: id
        in: path
        required: true
        type: string
    delete:
      operationId: DELETE_posts-id-json
      summary: Delete Message
      tags:
        - Messages
      description: |-
        Deletes the message including all comments etc.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
  /projects/api/v3/notebooks.json:
    get:
      operationId: GET_projects_api_v3_notebooks.json
      parameters:
        - description: filter by updated after date (deprecated, use updatedAfter)
          format: date-time
          in: query
          name: updatedAfterDate
          type: string
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by notebook name and description
          in: query
          name: searchTerm
          type: string
        - default: normal
          description: filter by project type
          enum:
            - normal
            - tasklists-template
            - projects-template
          in: query
          name: projectType
          type: string
        - description: filter by project statuses
          in: query
          name: projectStatuses
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: dateUpdated
          description: order by
          enum:
            - name
            - project
            - dateCreated
            - dateUpdated
            - category
          in: query
          name: orderBy
          type: string
        - description: filter by created after date (deprecated, use createdAfter)
          format: date
          in: query
          name: createdAfterDate
          type: string
        - description: filter by created after date
          format: date
          in: query
          name: createdAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. 
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - 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

            0: not set
            1: bad
            2: ok
            3: 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: 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:
    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: 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: 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
    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
  /projects/api/v3/people.json:
    get:
      description: Retrieve all people for the provided filters.
      operationId: GET_projects_api_v3_people.json
      parameters:
        - description: user type
          enum:
            - account
            - collaborator
            - contact
          in: query
          name: userType
          type: string
        - description: date time
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by comment content
          in: query
          name: searchTerm
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: name
          description: order by
          enum:
            - name
            - namecaseinsensitive
            - company
          in: query
          name: orderBy
          type: string
        - format: date-time
          in: query
          name: lastLoginAfter
          type: string
        - default: '50'
          description: |-
            Number of items in a page. (not used when generating reports)
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1 
            Maximum: 500
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance reasons.
          in: query
          name: skipCounts
          type: boolean
        - default: 'false'
          description: include deleted items
          in: query
          name: showDeleted
          type: boolean
        - description: Force to have the current/session user in the response
          in: query
          name: orderPrioritiseCurrentUser
          type: boolean
        - default: 'false'
          in: query
          name: onlySiteOwner
          type: boolean
        - default: 'false'
          description: |-
            return people only from the owner company. This will replace any provided
            company ID.
          in: query
          name: onlyOwnerCompany
          type: boolean
        - default: 'false'
          description: include service accounts
          in: query
          name: includeServiceAccounts
          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
        - description: team ids
          in: query
          items:
            type: integer
          name: teamIds
          type: array
        - description: filter by project ids
          in: query
          items:
            type: integer
          name: projectIds
          type: array
        - description: include (not used when generating reports)
          in: query
          items:
            enum:
              - companies
              - workingHours
            type: string
          name: include
          type: array
        - description: filter by user ids
          in: query
          items:
            type: integer
          name: ids
          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: company ids
          in: query
          items:
            type: integer
          name: companyIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/people.MultiResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Returns a list of people
      tags:
        - People
  /projects/api/v3/projects/{projectId}/people.json:
    get:
      description: Retrieve all people on the project.
      operationId: GET_projects_api_v3_projects_{projectId}_people.json
      parameters:
        - description: user type
          enum:
            - account
            - collaborator
            - contact
          in: query
          name: userType
          type: string
        - description: date time
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by comment content
          in: query
          name: searchTerm
          type: string
        - default: asc
          description: order mode
          enum:
            - asc
            - desc
          in: query
          name: orderMode
          type: string
        - default: name
          description: order by
          enum:
            - name
            - namecaseinsensitive
            - company
          in: query
          name: orderBy
          type: string
        - format: date-time
          in: query
          name: lastLoginAfter
          type: string
        - in: path
          name: projectId
          required: true
          type: integer
        - default: '50'
          description: number of items in a page (not used when generating reports)
          in: query
          name: pageSize
          type: integer
        - default: '1'
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          in: query
          name: page
          type: integer
        - description: |-
            SkipCounts allows you to skip doing counts on a list API endpoint for
            performance reasons.
          in: query
          name: skipCounts
          type: boolean
        - default: 'false'
          description: include deleted items
          in: query
          name: showDeleted
          type: boolean
        - description: Force to have the current/session user in the response
          in: query
          name: orderPrioritiseCurrentUser
          type: boolean
        - default: 'false'
          in: query
          name: onlySiteOwner
          type: boolean
        - default: 'false'
          description: |-
            return people only from the owner company. This will replace any provided
            company ID.
          in: query
          name: onlyOwnerCompany
          type: boolean
        - default: 'false'
          description: include service accounts
          in: query
          name: includeServiceAccounts
          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
        - description: team ids
          in: query
          items:
            type: integer
          name: teamIds
          type: array
        - description: filter by project ids
          in: query
          items:
            type: integer
          name: projectIds
          type: array
        - description: include (not used when generating reports)
          in: query
          items:
            enum:
              - companies
              - permissions
            type: string
          name: include
          type: array
        - description: filter by user ids
          in: query
          items:
            type: integer
          name: ids
          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: company ids
          in: query
          items:
            type: integer
          name: companyIds
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/people.MultiResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Returns a list of people on a project
      tags:
        - People
    put:
      consumes:
        - application/json
      description: Adds a list of user ID's to a project.
      operationId: PUT_projects_api_v3_projects_{projectId}_people.json
      parameters:
        - in: body
          name: people.UsersPayload
          required: true
          schema:
            $ref: '#/definitions/people.UsersPayload'
        - in: path
          name: projectId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/people.AddPeopleToProjectResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Add people to a project
      tags:
        - People
  /projects/api/v3/people/{personId}.json:
    delete:
      description: Delete a person.
      operationId: DELETE_projects_api_v3_people_{personId}.json
      parameters:
        - in: path
          name: personId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '204':
          description: 204 No Content (no data)
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
      summary: Delete an existing person.
      tags:
        - People
      x-private: true
    
  /projects/{id}/boards/columns.json:
    parameters:
      - name: id
        in: path
        required: true
        type: integer
    get:
      operationId: GET_projects-id-boards-columns-json
      summary: List Columns
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
        
        Allows you to list all existing Columns in your Boards view.

        Example:
        https://yoursite.teamwork.com/projects/{id}/boards/columns.json?showDeleted=true&updatedAfterDate=20171119120101

        ---
      parameters:
        - name: page
          in: query
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize.
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          type: integer
        - name: pageSize
          in: query
          description:  |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1
          type: integer
        - name: showDeleted
          in: query
          description: Show deleted Columns in the API response or not
          type: boolean
        - name: sortBy
          in: query
          description: Sort by relevance eg. Date
          type: string
        - name: sortOrder
          in: query
          description: Sort by order eg. Ascending
          type: string
        - name: searchTerm
          in: query
          description: Show specific column by name
          type: string
        - name: getEmoji
          in: query
          description: Show emojis in API response or not
          type: boolean
        - name: includeDefaults
          in: query
          description: Show/hide default tasklists
          type: boolean
        - name: get
          in: query
          description: Show people and/or default columns
          type: string
        - name: updatedAfterDate
          in: query
          description: Show Columns updated after a given date
          type: string
        - name: getStats
          in: query
          description: Show/hide information about cards within the column
          type: boolean
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              columns:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    displayOrder:
                      type: string
                    sortOrder:
                      type: string
                    deletedDate:
                      type: string
                    dateUpdated:
                      type: string
                    settings:
                      type: object
                      properties:
                        avatar:
                          type: boolean
                        time:
                          type: boolean
                        name:
                          type: boolean
                        files:
                          type: boolean
                        comments:
                          type: boolean
                        priority:
                          type: boolean
                        progress:
                          type: boolean
                        subtasktext:
                          type: boolean
                        tasklist:
                          type: boolean
                        private:
                          type: boolean
                        reminders:
                          type: boolean
                        assignee:
                          type: boolean
                        dependencies:
                          type: boolean
                        tags:
                          type: boolean
                        estimatedtime:
                          type: boolean
                        startdate:
                          type: boolean
                        tickets:
                          type: boolean
                        followers:
                          type: boolean
                        recurring:
                          type: boolean
                        subtasklabel:
                          type: boolean
                        parenttask:
                          type: boolean
                        enddate:
                          type: boolean
                    defaultTasklist:
                      type: object
                      properties:
                        newTaskDefaults:
                          type: object
                        name:
                          type: string
                        id:
                          type: string
                    projectId:
                      type: string
                    stats:
                      type: object
                      properties:
                        estimatedTime:
                          type: string
                        total:
                          type: string
                        completed:
                          type: string
                        active:
                          type: string
                    hasTriggers:
                      type: boolean
                    sort:
                      type: string
                    canEdit:
                      type: boolean
                    triggers:
                      type: array
                      items:
                        type: object
                    id:
                      type: string
                    dateCreated:
                      type: string
                    color:
                      type: string
                    deleted:
                      type: boolean
                    canAddCards:
                      type: boolean
              people:
                type: object
                properties:
                  '123':
                    type: object
                    properties:
                      company:
                        type: object
                        properties:
                          name:
                            type: string
                          id:
                            type: string
                      avatarUrl:
                        type: string
                      firstName:
                        type: string
                      id:
                        type: string
                      lastName:
                        type: string
              STATUS:
                type: string
          examples:
            application/json:
              columns:
                - name: My new Column
                  displayOrder: '4000'
                  sortOrder: ASC
                  deletedDate: ''
                  dateUpdated: yyyy-mm-ddThh:mm:ssZ
                  settings:
                    avatar: true
                    time: true
                    name: true
                    files: true
                    comments: true
                    priority: true
                    progress: true
                    subtasktext: true
                    tasklist: true
                    private: true
                    reminders: true
                    assignee: true
                    dependencies: true
                    tags: true
                    estimatedtime: true
                    startdate: true
                    tickets: true
                    followers: true
                    recurring: true
                    subtasklabel: true
                    parenttask: true
                    enddate: true
                  defaultTasklist:
                    newTaskDefaults: {}
                    name: ''
                    id: '0'
                  projectId: '12345'
                  stats:
                    estimatedTime: ''
                    total: '0'
                    completed: '0'
                    active: '0'
                  hasTriggers: false
                  sort: manual
                  canEdit: true
                  triggers: []
                  id: '1001'
                  dateCreated: yyyy-mm-ddThh:mm:ssZ
                  color: '#1ABC9C'
                  deleted: false
                  canAddCards: true
              people:
                '123':
                  company:
                    name: My Company
                    id: '1234'
                  avatarUrl: https://path/to/image.png
                  firstName: Joe
                  id: '123'
                  lastName: Bloggs
              STATUS: OK
    post:
      operationId: POST_projects-id-boards-columns-json
      summary: Create a new Column
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Allows you to create a new Column in your Boards view.

        <h4>Please note: The following colours can be used when creating Columns:</h4>
        #27AE60, #99DF72, #1ABC9C, #6866D0, #8E44AD, #0AD2F5, #3498DB, #3D82DE, #C0392B, #E74C3C, #A94136, #660A00, #F39C12, #F1C40F, #34495E, #7F8C8D, #D35400, #B49255, #D870AD, #BDC3C7, #9B59B6

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              column:
                type: object
                properties:
                  name:
                    type: string
                  color:
                    type: string
            example:
              column:
                name: new card name
                color: '#1ABC9C'
      responses:
        '201':
          description: ''
          schema:
            type: object
            properties:
              id:
                type: string
              STATUS:
                type: string
          examples:
            application/json:
              id: '10001'
              STATUS: OK
  /boards/columns/{id}/cards.json:
    parameters:
      - name: id
        in: path
        type: string
        required: true
    get:
      operationId: GET_boards-columns-id-cards-json
      summary: List Cards in a Column
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        List the existing Cards inside a Column.

        ---
      parameters:
        - name: page
          in: query
          description: |-
            Page number, this is usually used in conjunction with the parameter pageSize.
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
          type: string
        - name: pageSize
          in: query
          description: |-
            Number of items in a page
            See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
            Minimum: 1
          type: integer
        - name: showDeleted
          in: query
          description: Show deleted Columns in the API response or not
          type: boolean
        - name: deletedAfterDate
          in: query
          description: deletedAfterDate
          type: string
        - name: updatedAfterDate
          in: query
          description: Show Columns updated after a given date
          type: string
        - name: searchTerm
          in: query
          description: An optional term to filter down to Cards containing this text in the Cards name
          type: string
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              people:
                type: object
                properties:
                  '12345':
                    type: object
                    properties:
                      company:
                        type: object
                        properties:
                          name:
                            type: string
                          id:
                            type: string
                      avatarUrl:
                        type: string
                      firstName:
                        type: string
                      id:
                        type: string
                      lastName:
                        type: string
              STATUS:
                type: string
              column:
                type: object
                properties:
                  name:
                    type: string
                  id:
                    type: string
                  color:
                    type: string
              cards:
                type: array
                items:
                  type: object
                  properties:
                    dueDate:
                      type: string
                    canComplete:
                      type: boolean
                    numComments:
                      type: string
                    taskListId:
                      type: string
                    displayOrder:
                      type: string
                    hasTickets:
                      type: boolean
                    archived:
                      type: boolean
                    deletedDate:
                      type: string
                    dateUpdated:
                      type: string
                    dateCompleted:
                      type: string
                    private:
                      type: string
                    projectId:
                      type: string
                    status:
                      type: string
                    numPredecessors:
                      type: string
                    numDependencies:
                      type: string
                    numAttachments:
                      type: string
                    canEdit:
                      type: boolean
                    tags:
                      type: array
                      items:
                        type: object
                    startDate:
                      type: string
                    id:
                      type: string
                    hasLoggedTime:
                      type: boolean
                    dateCreated:
                      type: string
                    completed:
                      type: boolean
                    estimatedMinutes:
                      type: string
                    deleted:
                      type: boolean
                    taskListName:
                      type: string
                    taskStatus:
                      type: string
                    columnId:
                      type: string
                    name:
                      type: string
                    description:
                      type: string
                    priority:
                      type: string
                    progress:
                      type: string
                    parentTaskId:
                      type: string
                    numActiveSubTasks:
                      type: string
                    assignedPeople:
                      type: array
                      items:
                        type: string
                    taskId:
                      type: string
                    isRecurring:
                      type: boolean
                    hasUnreadComments:
                      type: boolean
                    archivedDate:
                      type: string
          examples:
            application/json:
              people:
                '12345':
                  company:
                    name: My Company
                    id: '1234'
                  avatarUrl: https://path/to/person.jpg
                  firstName: Joe
                  id: '123'
                  lastName: Bloggs
              STATUS: OK
              column:
                name: Inbox Column
                id: '1003'
                color: '#3D82DE'
              cards:
                - dueDate: ''
                  canComplete: true
                  numComments: '0'
                  taskListId: '123456789'
                  displayOrder: '1'
                  hasTickets: false
                  archived: false
                  deletedDate: ''
                  dateUpdated: yyyy-mm-ddThh:mm:ssZ
                  dateCompleted: ''
                  private: '0'
                  projectId: '1'
                  status: ACTIVE
                  numPredecessors: '0'
                  numDependencies: '0'
                  numAttachments: '0'
                  canEdit: true
                  tags: []
                  startDate: ''
                  id: '1002'
                  hasLoggedTime: false
                  dateCreated: yyyy-mm-ddThh:mm:ssZ
                  completed: false
                  estimatedMinutes: '0'
                  deleted: false
                  taskListName: A task list
                  taskStatus: new
                  columnId: '101'
                  name: My task name
                  description: ''
                  priority: NONE
                  progress: '0'
                  parentTaskId: ''
                  numActiveSubTasks: '0'
                  assignedPeople:
                    - '123'
                  taskId: '123456789'
                  isRecurring: false
                  hasUnreadComments: false
                  archivedDate: ''
    post:
      operationId: POST_boards-columns-id-cards-json
      summary: Add a card to a Column
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Add a task from your list of Tasks in to a Column.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              card:
                type: object
                properties:
                  taskId:
                    type: integer
              positionAfterId:
                type: integer
            example:
              card:
                taskId: 12345
              positionAfterId: -1
      responses:
        '201':
          description: ''
          examples:
            application/json:
              cardId: '1002'
              taskId: '12345'
              STATUS: OK
  /boards/columns/cards/{id}/move.json:
    parameters:
      - name: id
        in: path
        required: true
        type: integer
    put:
      operationId: PUT_boards-columns-cards-id-move-json
      summary: Move a Card
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Add a task from your list of Tasks in to a Column.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              cardId:
                type: integer
              positionAfterId:
                type: integer
              columnId:
                type: integer
            example:
              cardId: 101
              positionAfterId: 0
              columnId: 1003
      responses:
        '200':
          description: ''
          schema:
            type: object
          examples:
            application/json:
              STATUS: OK
  /boards/columns/cards/{id}.json:
    parameters:
      - name: id
        in: path
        type: string
        required: true
    put:
      operationId: PUT_boards-columns-cards-id-json
      summary: Edit a Card
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
      
        Edit the details of a Card.

        ---
      parameters:
        - name: body
          in: body
          schema:
            type: object
            properties:
              card:
                type: object
                properties:
                  content:
                    type: string
                  taskListId:
                    type: string
                  start-date:
                    type: string
                  due-date:
                    type: string
                  responsible-party-id:
                    type: string
                  estimated-minutes:
                    type: integer
                  priority:
                    type: string
                  progress:
                    type: string
                  tags:
                    type: string
            example:
              card:
                content: my updated card
                taskListId: '123456789'
                start-date: ''
                due-date: ''
                responsible-party-id: '0'
                estimated-minutes: 0
                priority: none
                progress: '0'
                tags: ''
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
    delete:
      operationId: DELETE_boards-columns-cards-id-json
      summary: Remove a Card
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
      
        Remove a Card from a Column (that task isn't deleted from the Tasklist).

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
    get:
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              card:
                type: object
                properties:
                  dueDate:
                    type: string
                  canComplete:
                    type: boolean
                  numComments:
                    type: string
                  taskListId:
                    type: string
                  displayOrder:
                    type: string
                  hasTickets:
                    type: boolean
                  archived:
                    type: boolean
                  deletedDate:
                    type: string
                  dateCompleted:
                    type: string
                  dateUpdated:
                    type: string
                  private:
                    type: string
                  projectId:
                    type: string
                  status:
                    type: string
                  numPredecessors:
                    type: string
                  numDependencies:
                    type: string
                  numAttachments:
                    type: string
                  tags:
                    type: array
                    items:
                      type: object
                  canEdit:
                    type: boolean
                  startDate:
                    type: string
                  id:
                    type: string
                  hasLoggedTime:
                    type: boolean
                  dateCreated:
                    type: string
                  completed:
                    type: boolean
                  estimatedMinutes:
                    type: string
                  deleted:
                    type: boolean
                  taskStatus:
                    type: string
                  taskListName:
                    type: string
                  columnId:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                  progress:
                    type: string
                  priority:
                    type: string
                  projectName:
                    type: string
                  hasReminders:
                    type: boolean
                  parentTaskId:
                    type: string
                  column:
                    type: object
                    properties:
                      name:
                        type: string
                      id:
                        type: string
                      color:
                        type: string
                  hasRemindersForUser:
                    type: boolean
                  numActiveSubTasks:
                    type: string
                  assignedPeople:
                    type: array
                    items:
                      type: string
                  taskId:
                    type: string
                  isRecurring:
                    type: boolean
                  hasUnreadComments:
                    type: boolean
                  archivedDate:
                    type: string
          examples:
            application/json:
              card:
                dueDate: ''
                canComplete: true
                numComments: '0'
                taskListId: '12'
                displayOrder: '1000'
                hasTickets: false
                archived: false
                deletedDate: ''
                dateCompleted: ''
                dateUpdated: '2020-05-27T09:00:22Z'
                private: '0'
                projectId: '12'
                status: ACTIVE
                numPredecessors: '0'
                numDependencies: '0'
                numAttachments: '0'
                tags: []
                canEdit: true
                startDate: ''
                id: '12'
                hasLoggedTime: false
                dateCreated: '2020-05-27T08:16:00Z'
                completed: false
                estimatedMinutes: '0'
                deleted: false
                taskStatus: new
                taskListName: Cards
                columnId: '12'
                name: posing card
                description: ''
                progress: '0'
                priority: NONE
                projectName: Gage Wilkinson
                hasReminders: false
                parentTaskId: ''
                column:
                  name: test
                  id: '12'
                  color: '#3D82DE'
                hasRemindersForUser: false
                numActiveSubTasks: '0'
                assignedPeople:
                  - '1'
                taskId: '123'
                isRecurring: false
                hasUnreadComments: false
                archivedDate: ''
      summary: 'Get a Card '
      tags:
        - Boards
  /boards/columns/{id}.json:
    parameters:
      - name: id
        in: path
        type: string
        required: true
    delete:
      operationId: DELETE_boards-columns-id-json
      summary: Delete a Column
      tags:
        - Boards
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Remove a Column from your boards view.

        ---
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
    put:
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
          examples:
            application/json:
              STATUS: OK
      summary: Edit a Column
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Editing a column in a board by passing in the column Id.
      parameters:
        - in: path
          name: id
          type: string
          required: true
        - in: body
          name: body
          schema:
            type: object
            properties:
              column:
                type: object
                properties:
                  name:
                    type: string
                  color:
                    type: string
      tags:
        - Boards
    get:
      responses:
        '200':
          description: ''
          schema:
            type: object
            properties:
              STATUS:
                type: string
              column:
                type: object
                properties:
                  name:
                    type: string
                  displayOrder:
                    type: string
                  sortOrder:
                    type: string
                  deletedDate:
                    type: string
                  dateUpdated:
                    type: string
                  settings:
                    type: object
                    properties:
                      time:
                        type: boolean
                      avatar:
                        type: boolean
                      name:
                        type: boolean
                      files:
                        type: boolean
                      comments:
                        type: boolean
                      priority:
                        type: boolean
                      progress:
                        type: boolean
                      subtasktext:
                        type: boolean
                      tasklist:
                        type: boolean
                      private:
                        type: boolean
                      reminders:
                        type: boolean
                      assignee:
                        type: boolean
                      dependencies:
                        type: boolean
                      tags:
                        type: boolean
                      estimatedtime:
                        type: boolean
                      startdate:
                        type: boolean
                      tickets:
                        type: boolean
                      followers:
                        type: boolean
                      recurring:
                        type: boolean
                      subtasklabel:
                        type: boolean
                      enddate:
                        type: boolean
                  defaultTasklist:
                    type: object
                    properties:
                      newTaskDefaults:
                        type: object
                      name:
                        type: string
                      id:
                        type: string
                  projectId:
                    type: string
                  hasTriggers:
                    type: boolean
                  sort:
                    type: string
                  canEdit:
                    type: boolean
                  id:
                    type: string
                  dateCreated:
                    type: string
                  color:
                    type: string
                  deleted:
                    type: boolean
                  canAddCards:
                    type: boolean
          examples:
            application/json:
              STATUS: OK
              column:
                name: In Progress
                displayOrder: '4000'
                sortOrder: ASC
                deletedDate: ''
                dateUpdated: '2020-05-26T08:34:31Z'
                settings:
                  time: true
                  avatar: true
                  name: true
                  files: true
                  comments: true
                  priority: true
                  progress: true
                  subtasktext: true
                  tasklist: true
                  private: true
                  reminders: true
                  assignee: true
                  dependencies: true
                  tags: true
                  estimatedtime: true
                  startdate: true
                  tickets: true
                  followers: true
                  recurring: true
                  subtasklabel: true
                  enddate: true
                defaultTasklist:
                  newTaskDefaults: {}
                  name: ''
                  id: '0'
                projectId: '1234'
                hasTriggers: false
                sort: manual
                canEdit: true
                id: '1234'
                dateCreated: '2020-05-26T08:34:22Z'
                color: '#27AE60'
                deleted: false
                canAddCards: true
      summary: Get a Column
      description: |-
        **Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
      
        Get a column from a board by passing in the column Id.
      tags:
        - Boards
  /projects/api/v3/workflows.json:
    get:
      operationId: GET_projects_api_v3_workflows.json
      parameters:
        - description: filter by updated after date
          format: date-time
          in: query
          name: updatedAfter
          type: string
        - description: filter by workflow status
          in: query
          name: status
          type: string
        - description: filter by search term
          in: query
          name: searchTerm
          type: string
        - description: |-
            cursor used for pagination. When using this pagination mode the page and
            pageSize will be ignored, using limit to control the number of items. If
            any other filter is modified during 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
        - default: 'false'
          description: include deleted items
          in: query
          name: showDeleted
          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: 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
            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: 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/workflow.WorkflowsResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all workflows.
      tags:
        - Workflows
      x-private: true
    post:
      consumes:
        - application/json
      description: Creates a new workflow.
      operationId: POST_projects_api_v3_workflows.json
      parameters:
        - in: body
          name: workflow.Request
          required: true
          schema:
            $ref: '#/definitions/workflow.Request'
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/workflow.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Create a new workflow.
      tags:
        - Workflows
      x-private: true
  '/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
            pageSize will be ignored, using limit to control the number of items. If
            any other filter is modified during the cursor iteration the response
            will 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: include deleted stages in the result
          in: query
          name: showDeleted
          type: boolean
        - description: include
          in: query
          items:
            enum:
              - workflows
            type: string
          name: include
          type: array
        - description: filter by stage ids
          in: query
          items:
            type: integer
          name: ids
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - statusId
            type: string
          name: 'fields[workflows]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - stage
            type: string
          name: 'fields[stages]'
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/stage.StagesResponse'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get all stages.
      tags:
        - Workflows
      x-private: true
    post:
      consumes:
        - application/json
      description: Creates a new stage for a workflow with the given id.
      operationId: 'POST_projects_api_v3_workflows_{workflowId}_stages.json'
      parameters:
        - in: body
          name: stage.Request
          required: true
          schema:
            $ref: '#/definitions/stage.Request'
        - in: path
          name: workflowId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/stage.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Create a new stage for a workflow.
      tags:
        - Workflows
      x-private: true
  '/projects/api/v3/workflows/{workflowId}/stages/{stageId}/tasks.json':
    post:
      consumes:
        - application/json
      description: Add all provided tasks to the workflow's stage.
      operationId: 'POST_projects_api_v3_workflows_{workflowId}_stages_{stageId}_tasks.json'
      parameters:
        - in: body
          name: stage.BulkAddTasksRequest
          required: true
          schema:
            $ref: '#/definitions/stage.BulkAddTasksRequest'
        - 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)
        '409':
          description: 409 Conflict
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Add tasks into stage.
      tags:
        - Workflows
      x-private: true
  '/projects/api/v3/workflows/{workflowId}/stages/{stageId}.json':
    get:
      description: Returns a stage for a workflow by id.
      operationId: 'GET_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json'
      parameters:
        - in: path
          name: workflowId
          required: true
          type: integer
        - in: path
          name: stageId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/stage.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
      summary: Get a specific stage.
      tags:
        - Workflows
      x-private: true
    patch:
      consumes:
        - application/json
      description: Updates a stage by id with the given workflow id.
      operationId: 'PATCH_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json'
      parameters:
        - in: body
          name: stage.Request
          required: true
          schema:
            $ref: '#/definitions/stage.Request'
        - in: path
          name: workflowId
          required: true
          type: integer
        - in: path
          name: stageId
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/stage.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
        '409':
          description: 409 Conflict
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Update an existing stage.
      tags:
        - Workflows
      x-private: true
    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
      x-private: true
  '/projects/api/v3/projects/:projectId/workflows.json':
    post:
      consumes:
        - application/json
      operationId: 'POST_projects_api_v3_projects_:projectId_workflows.json'
      parameters:
        - in: body
          name: workflow.Request
          required: true
          schema:
            $ref: '#/definitions/workflow.Request'
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/workflow.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Applies a workflow to a project
      tags:
        - Workflows
      x-private: true
  '/projects/api/v3/projects/workflows/:id.json':
    post:
      consumes:
        - application/json
      operationId: 'POST_projects_api_v3_projects_workflows_:id.json'
      parameters:
        - in: body
          name: workflow.BulkProjectRequest
          required: true
          schema:
            $ref: '#/definitions/workflow.BulkProjectRequest'
      produces:
        - application/json
      responses:
        '201':
          description: 201 Created
          schema:
            $ref: '#/definitions/workflow.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Applies many projects to a workflow
      tags:
        - Workflows
      x-private: true
  '/projects/api/v3/workflows/{workflowId}/stages/{stageId}/tasks':
    get:
      description: |-
        Return multiple tasks according to the provided filter.


        On this endpoint you can filter by custom fields. The syntax for the
        query parameter is the following:

            customField[id][op]=value

        Where:
          - [id] is the custom field ID
          - [op] is the operator to apply when filtering, different operators are
            allowed according to the custom field type
          - [value] is the value to apply when filtering

        For example, if I want to filter a dropdown custom field with ID 10 to only
        return entries that have the value "Option1" we would do the following:

            customField[10][eq]=Option1

        The allowed operators are:
          - like
          - not-like
          - eq
          - not
          - lt
          - gt
          - any
      operationId: 'GET_projects_api_v3_workflows_{workflowId}_stages_{stageId}_tasks'
      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 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:
            - 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
          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
        - in: path
          name: workflowId
          required: true
          type: integer
        - in: path
          name: stageId
          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 completer user id
          in: query
          name: completedByUserId
          type: integer
        - description: use start dates for todays tasks
          in: query
          name: useStartDatesForTodaysTasks
          type: boolean
        - description: filter on all projects
          in: query
          name: useAllProjects
          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 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
            missing estimated time.
          in: query
          name: onlyUnplanned
          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 from projects where the user is strictly a project admin.
            site 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 members of the given teams
          in: query
          name: includeTeamUserIds
          type: boolean
        - description: include tasks without due dates
          in: query
          name: includeTasksWithoutDueDates
          type: boolean
        - default: 'true'
          description: include tasks with cards
          in: query
          name: includeTasksWithCards
          type: boolean
        - description: include tasks from deleted lists
          in: query
          name: includeTasksFromDeletedLists
          type: boolean
        - description: 'include ids of completed and 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
        - default: 'false'
          description: include custom fields
          in: query
          name: includeCustomFields
          type: boolean
        - description: include completed tasks
          in: query
          name: includeCompletedTasks
          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 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: 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.
            This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
            and return it inside a special field.
          in: query
          name: extractTemplateRoleName
          type: boolean
        - description: exclude assignee not on project teams
          in: query
          name: excludeAssigneeNotOnProjectTeams
          type: boolean
        - default: 'false'
          description: only completed tasks
          in: query
          name: completedOnly
          type: boolean
        - description: check if task has reminders
          in: query
          name: checkForReminders
          type: boolean
        - default: 'true'
          description: |-
            when filtering by assigned or unassagned tasks, include assignees that
            are 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: 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

            0: not set
            1: bad
            2: ok
            3: 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: include specific custom fields
          in: query
          items:
            type: integer
          name: includeCustomFieldIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tasklists
              - parentTasks
              - companies
              - teams
              - users
              - milestones
              - comments
              - comments.users
              - tags
              - cards
              - cards.columns
              - timeTotals
              - taskSequences
              - commentFollowers
              - changeFollowers
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
              - attachments
              - attachments.users
              - subtaskStats
              - timers
              - predecessors
              - permissions
            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
        - description: filter by board column ids
          in: query
          items:
            type: integer
          name: filterBoardColumnIds
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: 'fields[users]'
          type: array
        - in: query
          items:
            enum:
              - id
              - userId
              - taskId
              - projectId
              - description
              - running
              - billable
              - deleted
              - dateCreated
              - dateDeleted
              - duration
              - lastStartedAt
              - serverTime
              - intervals
            type: string
          name: 'fields[timers]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: 'fields[teams]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: 'fields[tasks]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: 'fields[tasklists]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - description
              - displayOrder
              - projectId
              - status
            type: string
          name: 'fields[taskgroups]'
          type: array
        - in: query
          items:
            enum:
              - id
              - installationId
              - frequency
              - selectedWeekDays
              - endDate
              - monthlyRepeatType
              - duration
              - rrule
            type: string
          name: 'fields[taskSequences]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: 'fields[tags]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - userID
              - updatedAt
              - itemType
              - itemID
              - grantAccessTo
            type: string
          name: 'fields[lockdowns]'
          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
              - name
              - color
              - displayOrder
              - createdAt
              - updatedAt
              - settings
              - sort
              - sortOrder
              - deletedAt
              - project
              - hasTriggers
              - deleted
              - stats
              - defaultTasklist
            type: string
          name: 'fields[columns]'
          type: array
        - in: query
          items:
            enum:
              - id
              - displayOrder
              - archived
              - archivedAt
              - archivedBy
              - createdAt
              - createBy
              - updatedAt
              - visible
              - status
              - deleteBy
              - deletedAt
            type: string
          name: 'fields[cards]'
          type: array
        - in: query
          items:
            enum:
              - viewMessagesAndFiles
              - viewTasksAndMilestones
              - viewTime
              - viewNotebooks
              - viewRiskRegister
              - viewEstimatedTime
              - viewInvoices
              - addTasks
              - addRisks
              - manageCustomFields
              - addExpenses
              - editAllTasks
              - addMilestones
              - addTaskLists
              - addMessages
              - addFiles
              - addTime
              - addNotebooks
              - viewLinks
              - addLinks
              - canViewForms
              - addForms
              - viewAllTimeLogs
              - setPrivacy
              - projectAdministrator
              - viewProjectUpdate
              - addProjectUpdate
              - canViewProjectMembers
              - canViewProjectBudget
              - canManageProjectBudget
              - canViewRates
              - canManageRates
              - canViewSchedule
              - canManageSchedule
              - receiveEmailNotifications
              - isObserving
              - isArchived
              - active
              - canAccess
              - inOwnerCompany
              - canManagePeople
              - canViewProjectTemplates
              - canManageProjectTemplates
            type: string
          name: 'fields[ProjectPermissions]'
          type: array
        - description: the ids of the expanded tasks
          in: query
          items:
            type: integer
          name: expandedIds
          type: array
        - description: filter by excluded tag ids
          in: query
          items:
            type: integer
          name: excludeTagIds
          type: array
        - description: filter by crm deal ids
          in: query
          items:
            type: integer
          name: crmDealIds
          type: array
        - description: filter by creator user ids
          in: query
          items:
            type: integer
          name: createdByUserIds
          type: array
        - description: filter by assignee team ids
          in: query
          items:
            type: integer
          name: assigneeTeamIds
          type: array
        - description: filter by assignee company ids
          in: query
          items:
            type: integer
          name: assigneeCompanyIds
          type: array
        - description: filter by custom fields
          in: query
          items:
            type: string
          name: CustomFields
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/task.tasksResponseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Get a specific project's tasks.
      tags:
        - Workflows
      x-private: true
  '/projects/api/v3/workflows/{workflowId}/backlog':
    get:
      description: |-
        On this endpoint you can filter by custom fields. The syntax for the
        query parameter is the following:

            customField[id][op]=value

        Where:
          - [id] is the custom field ID
          - [op] is the operator to apply when filtering, different operators are
            allowed according to the custom field type
          - [value] is the value to apply when filtering

        For example, if I want to filter a dropdown custom field with ID 10 to only
        return entries that have the value "Option1" we would do the following:

            customField[10][eq]=Option1

        The allowed operators are:
          - like
          - not-like
          - eq
          - not
          - lt
          - gt
          - any
      operationId: 'GET_projects_api_v3_workflows_{workflowId}_backlog'
      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 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:
            - 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
          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
        - in: path
          name: workflowId
          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 completer user id
          in: query
          name: completedByUserId
          type: integer
        - description: use start dates for todays tasks
          in: query
          name: useStartDatesForTodaysTasks
          type: boolean
        - description: filter on all projects
          in: query
          name: useAllProjects
          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 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
            missing estimated time.
          in: query
          name: onlyUnplanned
          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 from projects where the user is strictly a project admin.
            site 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 members of the given teams
          in: query
          name: includeTeamUserIds
          type: boolean
        - description: include tasks without due dates
          in: query
          name: includeTasksWithoutDueDates
          type: boolean
        - default: 'true'
          description: include tasks with cards
          in: query
          name: includeTasksWithCards
          type: boolean
        - description: include tasks from deleted lists
          in: query
          name: includeTasksFromDeletedLists
          type: boolean
        - description: 'include ids of completed and 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
        - default: 'false'
          description: include custom fields
          in: query
          name: includeCustomFields
          type: boolean
        - description: include completed tasks
          in: query
          name: includeCompletedTasks
          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 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: 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.
            This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
            and return it inside a special field.
          in: query
          name: extractTemplateRoleName
          type: boolean
        - description: exclude assignee not on project teams
          in: query
          name: excludeAssigneeNotOnProjectTeams
          type: boolean
        - default: 'false'
          description: only completed tasks
          in: query
          name: completedOnly
          type: boolean
        - description: check if task has reminders
          in: query
          name: checkForReminders
          type: boolean
        - default: 'true'
          description: |-
            when filtering by assigned or unassagned tasks, include assignees that
            are 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: 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

            0: not set
            1: bad
            2: ok
            3: 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: include specific custom fields
          in: query
          items:
            type: integer
          name: includeCustomFieldIds
          type: array
        - description: include
          in: query
          items:
            enum:
              - projects
              - projects.companies
              - projects.categories
              - tasklists
              - parentTasks
              - companies
              - teams
              - users
              - milestones
              - comments
              - comments.users
              - tags
              - cards
              - cards.columns
              - timeTotals
              - taskSequences
              - commentFollowers
              - changeFollowers
              - lockdowns
              - lockdowns.users
              - lockdowns.companies
              - lockdowns.teams
              - lockdowns.users.companies
              - lockdowns.companies.users
              - lockdowns.teams.users
              - attachments
              - attachments.users
              - subtaskStats
              - timers
              - predecessors
              - permissions
            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
        - description: filter by board column ids
          in: query
          items:
            type: integer
          name: filterBoardColumnIds
          type: array
        - in: query
          items:
            enum:
              - id
              - firstName
              - lastName
              - title
              - email
              - companyId
              - company
              - isAdmin
              - isClientUser
              - isServiceAccount
              - type
              - deleted
              - avatarUrl
              - lengthOfDay
              - workingHoursId
              - workingHour
              - userRate
              - userCost
              - canAddProjects
            type: string
          name: 'fields[users]'
          type: array
        - in: query
          items:
            enum:
              - id
              - userId
              - taskId
              - projectId
              - description
              - running
              - billable
              - deleted
              - dateCreated
              - dateDeleted
              - duration
              - lastStartedAt
              - serverTime
              - intervals
            type: string
          name: 'fields[timers]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - teamLogo
              - teamLogoIcon
              - teamLogoColor
            type: string
          name: 'fields[teams]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - dateUpdated
              - parentTaskId
              - isPrivate
              - status
              - tasklistId
              - startDate
              - dueDate
            type: string
          name: 'fields[tasks]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - projectId
              - milestoneId
            type: string
          name: 'fields[tasklists]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - description
              - displayOrder
              - projectId
              - status
            type: string
          name: 'fields[taskgroups]'
          type: array
        - in: query
          items:
            enum:
              - id
              - installationId
              - frequency
              - selectedWeekDays
              - endDate
              - monthlyRepeatType
              - duration
              - rrule
            type: string
          name: 'fields[taskSequences]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
              - color
              - count
            type: string
          name: 'fields[tags]'
          type: array
        - in: query
          items:
            enum:
              - id
              - name
            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
              - userID
              - updatedAt
              - itemType
              - itemID
              - grantAccessTo
            type: string
          name: 'fields[lockdowns]'
          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
              - name
              - color
              - displayOrder
              - createdAt
              - updatedAt
              - settings
              - sort
              - sortOrder
              - deletedAt
              - project
              - hasTriggers
              - deleted
              - stats
              - defaultTasklist
            type: string
          name: 'fields[columns]'
          type: array
        - in: query
          items:
            enum:
              - id
              - displayOrder
              - archived
              - archivedAt
              - archivedBy
              - createdAt
              - createBy
              - updatedAt
              - visible
              - status
              - deleteBy
              - deletedAt
            type: string
          name: 'fields[cards]'
          type: array
        - in: query
          items:
            enum:
              - viewMessagesAndFiles
              - viewTasksAndMilestones
              - viewTime
              - viewNotebooks
              - viewRiskRegister
              - viewEstimatedTime
              - viewInvoices
              - addTasks
              - addRisks
              - manageCustomFields
              - addExpenses
              - editAllTasks
              - addMilestones
              - addTaskLists
              - addMessages
              - addFiles
              - addTime
              - addNotebooks
              - viewLinks
              - addLinks
              - canViewForms
              - addForms
              - viewAllTimeLogs
              - setPrivacy
              - projectAdministrator
              - viewProjectUpdate
              - addProjectUpdate
              - canViewProjectMembers
              - canViewProjectBudget
              - canManageProjectBudget
              - canViewRates
              - canManageRates
              - canViewSchedule
              - canManageSchedule
              - receiveEmailNotifications
              - isObserving
              - isArchived
              - active
              - canAccess
              - inOwnerCompany
              - canManagePeople
              - canViewProjectTemplates
              - canManageProjectTemplates
            type: string
          name: 'fields[ProjectPermissions]'
          type: array
        - description: the ids of the expanded tasks
          in: query
          items:
            type: integer
          name: expandedIds
          type: array
        - description: filter by excluded tag ids
          in: query
          items:
            type: integer
          name: excludeTagIds
          type: array
        - description: filter by crm deal ids
          in: query
          items:
            type: integer
          name: crmDealIds
          type: array
        - description: filter by creator user ids
          in: query
          items:
            type: integer
          name: createdByUserIds
          type: array
        - description: filter by assignee team ids
          in: query
          items:
            type: integer
          name: assigneeTeamIds
          type: array
        - description: filter by assignee company ids
          in: query
          items:
            type: integer
          name: assigneeCompanyIds
          type: array
        - description: filter by custom fields
          in: query
          items:
            type: string
          name: CustomFields
          type: array
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/task.tasksResponseV205'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Returns tasks that have not been assigned a stage
      tags:
        - Workflows
      x-private: true
  '/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'
      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
      x-private: true
  '/projects/api/v3/projects/{projectId}/workflows/{id}.json':
    delete:
      operationId: 'DELETE_projects_api_v3_projects_{projectId}_workflows_{id}.json'
      parameters:
        - in: path
          name: projectId
          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 an existing workflow from a project.
      tags:
        - Workflows
      x-private: true
    patch:
      consumes:
        - application/json
      description: Maps previous stages to new ones
      operationId: 'PATCH_projects_api_v3_projects_{projectId}_workflows_{id}.json'
      parameters:
        - in: body
          name: workflow.Request
          required: true
          schema:
            $ref: '#/definitions/workflow.Request'
        - in: path
          name: projectId
          required: true
          type: integer
        - in: path
          name: id
          required: true
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: 200 OK
          schema:
            $ref: '#/definitions/workflow.Response'
        '400':
          description: 400 Bad Request
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '403':
          description: 403 Forbidden
          schema:
            $ref: '#/definitions/view.ErrorResponse'
        '404':
          description: 404 Not Found (no data)
        '409':
          description: 409 Conflict
          schema:
            $ref: '#/definitions/view.ErrorResponse'
      summary: Update an existing project workflow.
      tags:
        - Workflows
      x-private: true