swagger: '2.0'
info:
  title: Wrike API based on Official spec
  description: Wrike API based on officially published specification
  version: 1.0.0
host: app-eu.wrike.com
basePath: /api/v4
schemes:
  - https
tags:
  - name: Access Roles
  - name: Account
  - name: Approvals
  - name: Async job
  - name: Attachments
  - name: Audit Log
  - name: Bookings
  - name: Colors
  - name: Comments
  - name: Contacts
  - name: Copy Work Schedule
  - name: Custom Fields
  - name: Custom Item Types
  - name: Data Export
  - name: Data export schema
  - name: Dependencies
  - name: EDiscovery
  - name: Folder Blueprints
  - name: Folders & Projects
  - name: Groups
  - name: Hourly rates
  - name: Hourly rates provision
  - name: IDs
  - name: Invitations
  - name: Job Roles
  - name: Placeholders
  - name: Rollups
  - name: Spaces
  - name: Task Blueprints
  - name: Tasks
  - name: Timelog categories
  - name: Timelogs
  - name: Timesheet Submission Rules
  - name: User Schedule exceptions
  - name: User Types
  - name: Users
  - name: Version
  - name: Work Schedule exceptions
  - name: Work Schedules
  - name: Workflows
paths:
  /access_roles:
    get:
      summary: Get Access Roles
      deprecated: false
      description: |-
        Access roles.

        <b>Scopes:</b> amReadOnlyAccessRole
      operationId: GET_access_roles_empty
      tags:
        - Access Roles
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AccessRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /account:
    get:
      summary: Query Accounts
      deprecated: false
      description: |-
        Returns current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_account_empty
      tags:
        - Account
      parameters:
        - name: metadata
          in: query
          description: Metadata filter, exact match for metadata key or key-value pair
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Account metadata

            * `customFields` - Account custom fields

            * `subscription` - Account subscription
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Account'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Account
      deprecated: false
      description: |-
        Update current account.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_account_empty
      tags:
        - Account
      parameters:
        - name: metadata
          in: query
          description: 'Metadata to be updated. Limit : 100'
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Account'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /approvals:
    get:
      summary: Get approvals
      deprecated: false
      description: >-
        Reads approvals by filter. When no filter parameters passed returns all
        approvals shared with a user.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_approvals_empty
      tags:
        - Approvals
      parameters:
        - name: statuses
          in: query
          description: |-
            Get approvals for specified statuses
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          enum:
            - Draft
            - Approved
            - Rejected
            - Cancelled
            - Pending
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: approvers
          in: query
          description: Approvers filter, match of any
          required: false
          type: string
        - name: pendingApprovers
          in: query
          description: Pending approvers filter, match of any
          required: false
          type: string
        - name: limit
          in: query
          description: Limit on number of returned approvals
          required: false
          type: number
        - name: pageSize
          in: query
          description: Page size
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: Next page token, overrides any other parameters in request
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/approvals:
    get:
      summary: Get approvals
      deprecated: false
      description: |-
        Reads all approvals on folder/project.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_approvals
      tags:
        - Approvals
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create approval
      deprecated: false
      description: >-
        Create an approval for folder/project. Creates approval in draft status
        when no approvers assigned. Otherwise creates in pending status.
        Approvals created via API will not be affected by workflow automation,
        e.g. task status will not be automatically transitioned when approval
        finishes.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_approvals
      tags:
        - Approvals
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: description
          in: query
          description: Description
          required: false
          type: string
        - name: dueDate
          in: query
          description: Due date
          required: false
          type: string
        - name: approvers
          in: query
          description: Assign approvers
          required: false
          type: string
        - name: attachments
          in: query
          description: List of origin version attachments to set in approval
          required: false
          type: string
        - name: autoFinishOnApprove
          in: query
          description: >-
            Is finish approval automatically when all approvers have approved.
            Set to true by default
          required: false
          type: string
        - name: autoFinishOnReject
          in: query
          description: >-
            Is finish approval automatically when some of approvers have
            rejected. Set to true by default
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/approvals:
    get:
      summary: Get approvals
      deprecated: false
      description: |-
        Reads all approvals on task.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_approvals
      tags:
        - Approvals
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create approval
      deprecated: false
      description: >-
        Create an approval for task. Creates approval in draft status when no
        approvers assigned. Otherwise creates in pending status. Approvals
        created via API will not be affected by workflow automation, e.g. task
        status will not be automatically transitioned when approval finishes.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_tasks_single_approvals
      tags:
        - Approvals
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: description
          in: query
          description: Description
          required: false
          type: string
        - name: dueDate
          in: query
          description: Due date
          required: false
          type: string
        - name: approvers
          in: query
          description: Assign approvers
          required: false
          type: string
        - name: attachments
          in: query
          description: List of origin version attachments to set in approval
          required: false
          type: string
        - name: autoFinishOnApprove
          in: query
          description: >-
            Is finish approval automatically when all approvers have approved.
            Set to true by default
          required: false
          type: string
        - name: autoFinishOnReject
          in: query
          description: >-
            Is finish approval automatically when some of approvers have
            rejected. Set to true by default
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /approvals/{approvalId}:
    get:
      summary: Get approvals
      deprecated: false
      description: |-
        Reads approvals by ids.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_approvals_multi
      tags:
        - Approvals
      parameters:
        - name: approvalId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Cancel approval
      deprecated: false
      description: |-
        Cancel approval.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_approvals_single
      tags:
        - Approvals
      parameters:
        - name: approvalId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update approval
      deprecated: false
      description: |-
        Update approval.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_approvals_single
      tags:
        - Approvals
      parameters:
        - name: approvalId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: description
          in: query
          description: description
          required: false
          type: string
        - name: dueDate
          in: query
          description: due date
          required: false
          type: string
        - name: addApprovers
          in: query
          description: Assign approvers
          required: false
          type: string
        - name: removeApprovers
          in: query
          description: Remove approvers
          required: false
          type: string
        - name: addAttachments
          in: query
          description: Add origin version attachments to approval
          required: false
          type: string
        - name: removeAttachments
          in: query
          description: Remove origin version attachments from approval
          required: false
          type: string
        - name: autoFinishOnApprove
          in: query
          description: Is finish approval automatically when all approvers have approved
          required: false
          type: string
        - name: autoFinishOnReject
          in: query
          description: >-
            Is finish approval automatically when some of approvers have
            rejected
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Approval'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /async_job/{asyncJobId}:
    get:
      summary: Get async job
      deprecated: false
      description: |-
        Get Async job specified by id.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_async_job_single
      tags:
        - Async job
      parameters:
        - name: asyncJobId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AsyncJob'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /attachments:
    get:
      summary: Get Attachments
      deprecated: false
      description: |-
        Return all Attachments of account tasks and folders.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_attachments_empty
      tags:
        - Attachments
      parameters:
        - name: versions
          in: query
          description: Get attachments with previous versions
          required: false
          type: boolean
        - name: createdDate
          in: query
          description: >-
            Created date filter. Required to request attachments in account.
            Time range duration should be less than 31 day
          required: false
          type: string
        - name: withUrls
          in: query
          description: >-
            Get attachment URLs. The link for attachment from Wrike is valid for
            24 hours from when you make the request
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/attachments:
    get:
      summary: Get Attachments
      deprecated: false
      description: |-
        Returns all Attachments of a folder.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_attachments
      tags:
        - Attachments
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: versions
          in: query
          description: Get attachments with previous versions
          required: false
          type: boolean
        - name: createdDate
          in: query
          description: >-
            Created date filter. Required to request attachments in account.
            Time range duration should be less than 31 day
          required: false
          type: string
        - name: withUrls
          in: query
          description: >-
            Get attachment URLs. The link for attachment from Wrike is valid for
            24 hours from when you make the request
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Wrike Attachment
      deprecated: false
      description: |-
        Add an attachment to a folder.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_attachments
      tags:
        - Attachments
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/attachments:
    get:
      summary: Get Attachments
      deprecated: false
      description: |-
        Returns all Attachments of a task.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_attachments
      tags:
        - Attachments
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: versions
          in: query
          description: Get attachments with previous versions
          required: false
          type: boolean
        - name: createdDate
          in: query
          description: >-
            Created date filter. Required to request attachments in account.
            Time range duration should be less than 31 day
          required: false
          type: string
        - name: withUrls
          in: query
          description: >-
            Get attachment URLs. The link for attachment from Wrike is valid for
            24 hours from when you make the request
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Wrike Attachment
      deprecated: false
      description: |-
        Add an attachment to a task.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_tasks_single_attachments
      tags:
        - Attachments
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /attachments/{attachmentId}/download:
    get:
      summary: Download Wrike Attachment
      deprecated: false
      description: >-
        Returns attachment content. It can be accessed via
        /attachments/id/download/name.ext URL. In this case, 'name.ext' will be
        returned as the file name.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_attachments_single_download
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: string
            format: binary
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/octet-stream
        - application/json
  /attachments/{attachmentId}/preview:
    get:
      summary: Download Attachment Preview
      deprecated: false
      description: >-
        Returns Preview for the attachment. The preview can be accessed via
        /attachments/id/preview/name.ext URL. In this case, 'name.ext' will be
        returned as the file name.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_attachments_single_preview
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: size
          in: query
          description: |-
            Preview dimensions
            * `w44` - Width = 44, height = auto
            * `w300` - Width = 300, height = auto
            * `w400` - Width = 400, height = auto
            * `w100` - Width = 100, height = auto
            * `h400` - Width = auto, height = 400
            * `w200` - Width = 200, height = auto
            * `full` - Full size
          required: false
          enum:
            - w44
            - w300
            - w400
            - w100
            - h400
            - w200
            - full
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: string
            format: binary
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/octet-stream
        - application/json
  /attachments/{attachmentId}/url:
    get:
      summary: Get Access URL for Attachment
      deprecated: false
      description: >-
        Public URL to an attachment from Wrike or an external service. The link
        for attachment from Wrike is valid for 24 hours from when you make the
        request.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_attachments_single_url
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AttachmentUrl'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /attachments/{attachmentId}:
    get:
      summary: Get Attachments
      deprecated: false
      description: |-
        Returns complete information about multiple attachments.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_attachments_multi
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: versions
          in: query
          description: Get attachments with previous versions
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Attachment
      deprecated: false
      description: |-
        Delete Attachment by ID.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_attachments_single
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Attachment
      deprecated: false
      description: |-
        Update previously uploaded Attachment with new version.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_attachments_single
      tags:
        - Attachments
      parameters:
        - name: attachmentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: url
          in: query
          description: Download attachment by url
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Attachment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /audit_log:
    get:
      summary: Get Audit Log
      deprecated: false
      description: >-
        Get <a
        href="https://help.wrike.com/hc/en-us/articles/209606309-Audit-Log-Reports">Audit
        Log Reports</a>, that contains audit trail for actions in the account.
        Available to Enterprise admins with "Create user activity reports"
        right.


        <b>Scopes:</b> amReadOnlyAuditLog
      operationId: GET_audit_log_empty
      tags:
        - Audit Log
      parameters:
        - name: eventDate
          in: query
          description: Event date filter, range
          required: false
          type: string
        - name: operations
          in: query
          description: |-
            Operations filter
            * `SecondFactorEnabled` - 
            * `CustomFieldRemoved` - 
            * `CalendarExternalLinksActivated` - 
            * `TaskDuplication` - 
            * `GanttSnapshotDeleted` - 
            * `CalendarExternalLinkDeleted` - 
            * `TaskRestored` - 
            * `CalendarExternalLinksDeactivated` - 
            * `PowerBIPublicLinkDeleted` - 
            * `ApprovalCanceled` - 
            * `RequestFormCreated` - 
            * `SamlClearPasswordForSamlUsers` - 
            * `OneTimePasswordUsed` - 
            * `AnalyzeWidgetPublicLinkCreated` - 
            * `TaskErased` - 
            * `InvitationPolicyChanged` - 
            * `CalendarExternalLinkCreated` - 
            * `UserTaskGroupRolesChanged` - 
            * `UserJoinedSpace` - 
            * `SamlSSOSettingsChanged` - 
            * `UserFailLogin` - 
            * `SamlSSODisabled` - 
            * `AdminMailSettingsChanged` - 
            * `CustomFieldRemovedFromFolder` - 
            * `UserLoggedIn` - 
            * `UserRoleChanged` - 
            * `CustomFieldAddedToFolder` - 
            * `UserTypeModified` - 
            * `AccessCodeAccepted` - 
            * `PublicLinkExpirationChanged` - 
            * `UserLogout` - 
            * `PowerBIPublicLinkCreated` - 
            * `GuestReviewerRevoked` - 
            * `ApprovedIpRangesOrSubnetsChanged` - 
            * `TaskScheduleChanged` - 
            * `CustomFieldRestored` - 
            * `AccountDeleted` - 
            * `UserAdminPermissionsChanged` - 
            * `AttachDeleted` - 
            * `SpaceDeleted` - 
            * `AuditReportCreated` - 
            * `UserTypeCreated` - 
            * `ExcelExportCreated` - 
            * `AdminLoggedInAsUser` - 
            * `WorkflowCreated` - 
            * `TaskUnsharedFromAuthor` - 
            * `AccessAuditReportCsvExport` - 
            * `AttachMarkAsFinal` - 
            * `OneTimePasswordStatusSwitched` - 
            * `ApproverAdded` - 
            * `UserLeftSpace` - 
            * `TaskUnarchived` - 
            * `ApprovalDescriptionChanged` - 
            * `GroupParentRemoved` - 
            * `GuestReviewAccountSettingsChanged` - 
            * `WorkflowDeleted` - 
            * `PasswordPolicyModified` - 
            * `GroupInviteeAdded` - 
            * `UserRestored` - 
            * `ApprovalDueDateChanged` - 
            * `AnalyzeWidgetPublicLinkDeleted` - 
            * `SpaceArchivedUnarchived` - 
            * `TaskStatusChanged` - 
            * `TaskCommentChanged` - 
            * `AccessRoleDeleted` - 
            * `TaskUnassigned` - 
            * `AnalyzePublicLinkCreated` - 
            * `GuestReviewRejected` - 
            * `TaskUnshared` - 
            * `PasswordChanged` - 
            * `RequestFormDeleted` - 
            * `AttemptDownloadInfectedAttach` - 
            * `InvitationSend` - 
            * `AccessRoleModified` - 
            * `SpaceCreated` - 
            * `ApprovedDomainsChanged` - 
            * `TimesheetStatusChanged` - 
            * `TimelogLocked` - 
            * `UserRevokeAdmin` - 
            * `RecycleBinErased` - 
            * `ApproverRemoved` - 
            * `UserDeleted` - 
            * `GanttSnapshotCreated` - 
            * `GroupMemberRemoved` - 
            * `UserProfileUpdated` - 
            * `SecondFactorUsageReportCreated` - 
            * `SecondFactorDisabled` - 
            * `AttachViewed` - 
            * `AccessRoleCreated` - 
            * `GroupMemberAdded` - 
            * `AccountDataExportRequested` - 
            * `SamlSSOMetadataChanged` - 
            * `GroupRenamed` - 
            * `PublicLinkCreated` - 
            * `TaskShared` - 
            * `AccountModified` - 
            * `PublicLinkPasswordRequested` - 
            * `WorkflowModified` - 
            * `PublicLinkDeleted` - 
            * `AccessCodeDeclined` - 
            * `AnalyzeWidgetPublicLinkAccessed` - 
            * `ApprovalCreated` - 
            * `Oauth2AccessRevoked` - 
            * `TaskParentRemoved` - 
            * `AntivirusDeletedInfectedAttach` - 
            * `RequestFormModified` - 
            * `GroupInviteeRemoved` - 
            * `GuestReviewerInvited` - 
            * `TaskArchived` - 
            * `AccountBackupCreated` - 
            * `FeedCreated` - 
            * `AccessCodeGenerated` - 
            * `UserDeactivated` - 
            * `AttachCopied` - 
            * `GroupParentAdded` - 
            * `GuestReviewerChanged` - 
            * `TimelogUnlocked` - 
            * `TaskCreated` - 
            * `OneTimePasswordRevoked` - 
            * `ApprovalFinished` - 
            * `TaskAssigned` - 
            * `OneTimePasswordCreated` - 
            * `GroupCreated` - 
            * `TimesheetCreated` - 
            * `UsersAndGroupsExported` - 
            * `AttachMoved` - 
            * `CustomFieldCreated` - 
            * `AutomatedIntegrationsExecution` - 
            * `PowerBIPublicLinkAccessed` - 
            * `AttachUnmarkAsFinal` - 
            * `AnalyzePublicLinkAccessed` - 
            * `GroupDeleted` - 
            * `CustomFieldModified` - 
            * `TaskCommentDeleted` - 
            * `AnalyzePublicLinkDeleted` - 
            * `UserTypeDeleted` - 
            * `Oauth2AccessGranted` - 
            * `UserGrantAdmin` - 
            * `PublicLinksAccountSettingsChanged` - 
            * `TaskDeleted` - 
            * `InvitationAccepted` - 
            * `AccountDataExportGenerated` - 
            * `SamlSSOEnabled` - 
            * `PublicLinkPasswordChanged` - 
            * `TaskParentAdded` - 
            * `ApprovalDecisionMade` - 
            * `GuestReviewAccepted` - 
            * `UserCustomFieldValueChanged` - 
            * `UserActivated` - 
            * `AttachUploaded` - 
            * `AttachDownloaded` - 
          required: false
          type: string
        - name: pageSize
          in: query
          description: Page size
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: Next page token, overrides any other parameters in request
          required: false
          type: string
        - name: objectType
          in: query
          description: >-
            Filter by object type. Requires both eventDate and operations to be
            specified.

            * `Account` - 

            * `Group` - 

            * `AnalyzeReportWidget` - 

            * `Task` - 

            * `User` - 

            * `WorkspaceSnapshot` - 

            * `CalendarExternalLink` - 

            * `Attachment` - 

            * `Folder` - 

            * `DataExport` - 

            * `PowerBIEntity` - 

            * `Space` - 

            * `Comment` - 

            * `RequestForm` - 

            * `AccessRole` - 

            * `Timesheet` - 

            * `Invitation` - 

            * `Workflow` - 

            * `AnalyzeReport` - 

            * `Oauth2Client` - 

            * `Project` - 

            * `PublicLink` - 

            * `UserRole` - 

            * `CustomField` - 

            * `UserType` - 
          required: false
          enum:
            - Account
            - Group
            - AnalyzeReportWidget
            - Task
            - User
            - WorkspaceSnapshot
            - CalendarExternalLink
            - Attachment
            - Folder
            - DataExport
            - PowerBIEntity
            - Space
            - Comment
            - RequestForm
            - AccessRole
            - Timesheet
            - Invitation
            - Workflow
            - AnalyzeReport
            - Oauth2Client
            - Project
            - PublicLink
            - UserRole
            - CustomField
            - UserType
          type: string
        - name: objectIds
          in: query
          description: >-
            Filter by object ids. Requires objectType to be specified. Accepts
            up to 10 ids.
          required: false
          type: string
        - name: users
          in: query
          description: Filter by users ids. Accepts up to 10 ids.
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AuditLog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /bookings:
    get:
      summary: Query Bookings
      deprecated: false
      description: |-
        Returns list of all bookings in account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_bookings_empty
      tags:
        - Bookings
      parameters:
        - name: startDate
          in: query
          description: Start date
          required: false
          type: string
        - name: finishDate
          in: query
          description: Finish date
          required: false
          type: string
        - name: responsibleIds
          in: query
          description: 'IDs of responsible users. Limit : 15000'
          required: false
          type: string
        - name: responsiblePlaceholderIds
          in: query
          description: 'IDs of responsible placeholders. Limit : 15000'
          required: false
          type: string
        - name: showDescendants
          in: query
          description: If true return bookings from descendant folders
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/bookings:
    get:
      summary: Query Bookings
      deprecated: false
      description: |-
        Get bookings from folder.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_bookings
      tags:
        - Bookings
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: startDate
          in: query
          description: Start date
          required: false
          type: string
        - name: finishDate
          in: query
          description: Finish date
          required: false
          type: string
        - name: responsibleIds
          in: query
          description: 'IDs of responsible users. Limit : 15000'
          required: false
          type: string
        - name: responsiblePlaceholderIds
          in: query
          description: 'IDs of responsible placeholders. Limit : 15000'
          required: false
          type: string
        - name: showDescendants
          in: query
          description: If true return bookings from descendant folders
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Booking
      deprecated: false
      description: |-
        Create Booking.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_bookings
      tags:
        - Bookings
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: bookingDates
          in: query
          description: Booking dates
          required: true
          type: string
        - name: responsibleId
          in: query
          description: ID of responsible
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: responsiblePlaceholderId
          in: query
          description: ID of responsible placeholder
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: effortAllocation
          in: query
          description: Effort allocation
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /bookings/{bookingId}:
    get:
      summary: Query Bookings
      deprecated: false
      description: |-
        Get bookings list.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_bookings_multi
      tags:
        - Bookings
      parameters:
        - name: bookingId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Booking
      deprecated: false
      description: |-
        Delete booking by Id.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_bookings_single
      tags:
        - Bookings
      parameters:
        - name: bookingId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Booking
      deprecated: false
      description: |-
        Update Booking.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_bookings_single
      tags:
        - Bookings
      parameters:
        - name: bookingId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: bookingDates
          in: query
          description: Booking dates
          required: false
          type: string
        - name: responsibleId
          in: query
          description: ID of responsible
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: responsiblePlaceholderId
          in: query
          description: ID of responsible placeholder
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: effortAllocation
          in: query
          description: Effort allocation
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Booking'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /colors:
    get:
      summary: Query Colors
      deprecated: false
      description: |-
        Get color name - code mapping.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_colors_empty
      tags:
        - Colors
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/ColorsInfo'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /comments:
    get:
      summary: Get Comments
      deprecated: false
      description: |-
        Get all comments in current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_comments_empty
      tags:
        - Comments
      parameters:
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: types
          in: query
          description: |-
            Comment type filter
            * `Email` - 
            * `Regular` - 
          required: false
          type: string
        - name: updatedDate
          in: query
          description: >-
            Deprecated because this parameter filters by created date instead of
            updated date. Please use the createdDate parameter instead
          required: false
          type: string
        - name: createdDate
          in: query
          description: >-
            Use the createdDate parameter to get all comments created within a
            specific date range. The date range must be 7 days or shorter
          required: false
          type: string
        - name: limit
          in: query
          description: Maximum number of returned comments
          required: false
          type: number
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `type` - Comment type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/comments:
    get:
      summary: Get Comments
      deprecated: false
      description: |-
        Get folder comments.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_comments
      tags:
        - Comments
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: types
          in: query
          description: |-
            Comment type filter
            * `Email` - 
            * `Regular` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `type` - Comment type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Comment
      deprecated: false
      description: >-
        Create a comment in the folder. The virtual Root and Recycle Bin folders
        cannot have comments.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_comments
      tags:
        - Comments
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: text
          in: query
          description: >-
            Comment text, can not be empty. Supported HTML tags can be found in
            <a href="https://developers.wrike.com/special-syntax">Special
            syntax</a>
          required: true
          type: string
        - name: plainText
          in: query
          description: Treat comment text as plain text, HTML otherwise
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/comments:
    get:
      summary: Get Comments
      deprecated: false
      description: |-
        Get task comments.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_comments
      tags:
        - Comments
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: types
          in: query
          description: |-
            Comment type filter
            * `Email` - 
            * `Regular` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `type` - Comment type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Comment
      deprecated: false
      description: |-
        Create comment in task.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_tasks_single_comments
      tags:
        - Comments
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: text
          in: query
          description: >-
            Comment text, can not be empty. Supported HTML tags can be found in
            <a href="https://developers.wrike.com/special-syntax">Special
            syntax</a>
          required: true
          type: string
        - name: plainText
          in: query
          description: Treat comment text as plain text, HTML otherwise
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /comments/{commentId}:
    get:
      summary: Get Comments
      deprecated: false
      description: |-
        Get single or multiple comments by their IDs.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_comments_multi
      tags:
        - Comments
      parameters:
        - name: commentId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: types
          in: query
          description: |-
            Comment type filter
            * `Email` - 
            * `Regular` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `type` - Comment type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Comment
      deprecated: false
      description: |-
        Delete comment by ID.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_comments_single
      tags:
        - Comments
      parameters:
        - name: commentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Comment
      deprecated: false
      description: >-
        Update Comment by ID. A comment is available for updates only during the
        5 minutes after creation.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_comments_single
      tags:
        - Comments
      parameters:
        - name: commentId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: text
          in: query
          description: >-
            Comment text, can not be empty. Supported HTML tags can be found in
            <a href="https://developers.wrike.com/special-syntax">Special
            syntax</a>
          required: true
          type: string
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Comment'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts:
    get:
      summary: Query Contacts
      deprecated: false
      description: |-
        List contacts of all users and user groups in current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_contacts_empty
      tags:
        - Contacts
      parameters:
        - name: me
          in: query
          description: If present - only contact info of requesting user is returned
          required: true
          type: boolean
        - name: metadata
          in: query
          description: Metadata filter, exact match for metadata key or key-value pair
          required: false
          type: string
        - name: deleted
          in: query
          description: Deleted flag filter
          required: false
          type: boolean
        - name: customFields
          in: query
          description: Custom field filter
          required: false
          type: string
        - name: emails
          in: query
          description: 'Email contacts filter. Limit : 100'
          required: false
          type: string
        - name: active
          in: query
          description: Active status filter
          required: false
          type: boolean
        - name: name
          in: query
          description: Contact name filter
          required: false
          type: string
        - name: types
          in: query
          description: >-
            Contact type filter

            * `Group` - Group of users. Group userId can be used in folder/task
            sharing requests only. It has no effect in other operations

            * `Invitation` - Pending invitation

            * `Asset` - Asset

            * `Person` - Person

            * `Robot` - Robot user for automated operations
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Contact metadata

            * `currentCostRate` - Current user's cost rate

            * `customFields` - User's custom fields

            * `currentBillRate` - Current user's bill rate

            * `jobRoleId` - Current user's jobRoleId

            * `workScheduleId` - Contact work schedule id
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Contact'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts/{contactIds}/contacts_history:
    get:
      summary: Query Contacts fields history
      deprecated: false
      description: |-
        Query Contacts fields history.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_contacts_multi_contacts_history
      tags:
        - Contacts
      parameters:
        - name: contactIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: updatedDate
          in: query
          description: Update date filter
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `billRate` - User's bill rate

            * `costRate` - User's cost rate
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/ContactChangeHistory'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts/{contactId}:
    get:
      summary: Query Contacts
      deprecated: false
      description: |-
        List contacts of specified users and user groups.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_contacts_multi
      tags:
        - Contacts
      parameters:
        - name: contactId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: metadata
          in: query
          description: Metadata filter, exact match for metadata key or key-value pair
          required: false
          type: string
        - name: types
          in: query
          description: >-
            Contact type filter

            * `Group` - Group of users. Group userId can be used in folder/task
            sharing requests only. It has no effect in other operations

            * `Invitation` - Pending invitation

            * `Asset` - Asset

            * `Person` - Person

            * `Robot` - Robot user for automated operations
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Contact metadata

            * `currentCostRate` - Current user's cost rate

            * `customFields` - User's custom fields

            * `currentBillRate` - Current user's bill rate

            * `jobRoleId` - Current user's jobRoleId

            * `workScheduleId` - Contact work schedule id
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Contact'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Contact
      deprecated: false
      description: >-
        Update contact of requesting user by ID (use 'Modify User' method to
        update other users). Account Admins may use this method to update group
        info by group ID. .


        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_contacts_single
      tags:
        - Contacts
      parameters:
        - name: contactId
          in: path
          description: ''
          required: true
          x-example: ''
          type: string
        - name: metadata
          in: query
          description: >-
            Metadata to be updated. Requesting user has read/write access to his
            own metadata, other entries are read-only. Limit : 100
          required: false
          type: string
        - name: currentBillRate
          in: query
          description: Update current user's bill rate
          required: false
          type: string
        - name: currentCostRate
          in: query
          description: Update current user's cost rate
          required: false
          type: string
        - name: jobRoleId
          in: query
          description: Update current user's job role id
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: customFields
          in: query
          description: >-
            Custom fields to be updated or deleted (null value removes field).
            Limit : 100
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `currentCostRate` - Current user's cost rate

            * `customFields` - User's custom fields

            * `currentBillRate` - Current user's bill rate

            * `jobRoleId` - Current user's job role id
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Contact'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedules/{workscheduleId}/duplicate:
    post:
      summary: Copy Work Schedule
      deprecated: false
      description: |-
        Duplicate work schedule in account.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: POST_workschedules_single_duplicate
      tags:
        - Copy Work Schedule
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Name of work schedule
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /customfields:
    get:
      summary: Query Custom Fields
      deprecated: false
      description: |-
        Returns a list of custom fields in current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_customfields_empty
      tags:
        - Custom Fields
      parameters:
        - name: applicableEntityTypes
          in: query
          description: |-
            Applicable entity types
            * `User` - 
            * `WorkItem` - 
          required: false
          type: string
        - name: types
          in: query
          description: |-
            Custom field types
            * `Multiple` - Collection field
            * `Percentage` - Comparable field
            * `Text` - String field, Comparable field
            * `Duration` - Comparable field
            * `CalculatedNumeric` - Calculated comparable field
            * `Date` - Comparable field
            * `CalculatedDate` - Calculated comparable field
            * `Numeric` - Comparable field
            * `Contacts` - Collection field
            * `Checkbox` - Boolean field
            * `Currency` - Comparable field
            * `DropDown` - String field, Comparable field
            * `LinkToDatabase` - Link to database field
          required: false
          type: string
        - name: inheritanceTypes
          in: query
          description: |-
            Custom field inheritance types
            * `All` - 
            * `Tasks` - 
            * `Projects` - 
            * `Folders` - 
          required: false
          type: string
        - name: title
          in: query
          description: Custom field title
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomFieldDescription'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Custom Field
      deprecated: false
      description: |-
        Create custom field in specified account.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_customfields_empty
      tags:
        - Custom Fields
      parameters:
        - name: title
          in: query
          description: Custom field title
          required: true
          type: string
        - name: type
          in: query
          description: |-
            Custom field type
            * `Multiple` - Collection field
            * `Percentage` - Comparable field
            * `Text` - String field, Comparable field
            * `Duration` - Comparable field
            * `CalculatedNumeric` - Calculated comparable field
            * `Date` - Comparable field
            * `CalculatedDate` - Calculated comparable field
            * `Numeric` - Comparable field
            * `Contacts` - Collection field
            * `Checkbox` - Boolean field
            * `Currency` - Comparable field
            * `DropDown` - String field, Comparable field
            * `LinkToDatabase` - Link to database field
          required: true
          enum:
            - Multiple
            - Percentage
            - Text
            - Duration
            - CalculatedNumeric
            - Date
            - CalculatedDate
            - Numeric
            - Contacts
            - Checkbox
            - Currency
            - DropDown
            - LinkToDatabase
          type: string
        - name: spaceId
          in: query
          description: Custom field space ID
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: sharing
          in: query
          description: Custom field access settings
          required: false
          type: string
        - name: shareds
          in: query
          description: >-
            Users to share custom field with. Parameter is obsolete, use
            'sharing' instead
          required: false
          type: string
        - name: settings
          in: query
          description: Custom field settings
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomFieldDescription'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /customfields/{customfieldId}:
    get:
      summary: Query Custom Fields
      deprecated: false
      description: |-
        Returns complete information about specified custom fields.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_customfields_multi
      tags:
        - Custom Fields
      parameters:
        - name: customfieldId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: applicableEntityTypes
          in: query
          description: |-
            Applicable entity types
            * `User` - 
            * `WorkItem` - 
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomFieldDescription'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Custom Field
      deprecated: false
      description: |-
        Modify custom field.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_customfields_single
      tags:
        - Custom Fields
      parameters:
        - name: customfieldId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Custom field title
          required: false
          type: string
        - name: type
          in: query
          description: >-
            Custom field type. Conversion from any type of field to
            LinkToDatabase is not supported

            * `Multiple` - Collection field

            * `Percentage` - Comparable field

            * `Text` - String field, Comparable field

            * `Duration` - Comparable field

            * `CalculatedNumeric` - Calculated comparable field

            * `Date` - Comparable field

            * `CalculatedDate` - Calculated comparable field

            * `Numeric` - Comparable field

            * `Contacts` - Collection field

            * `Checkbox` - Boolean field

            * `Currency` - Comparable field

            * `DropDown` - String field, Comparable field

            * `LinkToDatabase` - Link to database field
          required: false
          enum:
            - Multiple
            - Percentage
            - Text
            - Duration
            - CalculatedNumeric
            - Date
            - CalculatedDate
            - Numeric
            - Contacts
            - Checkbox
            - Currency
            - DropDown
            - LinkToDatabase
          type: string
        - name: changeScope
          in: query
          description: >-
            Custom field scope

            * `Space` - Use it with valid 'spaceId' parameter to move custom
            field to space level

            * `Account` - Use it with null 'spaceId' parameter to move custom
            field to account level
          required: false
          enum:
            - Space
            - Account
          type: string
        - name: spaceId
          in: query
          description: Custom field space ID
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: sharing
          in: query
          description: Custom field access settings
          required: false
          type: string
        - name: addShareds
          in: query
          description: >-
            Share custom field with specified users. Parameter is obsolete, use
            'sharing' instead
          required: false
          type: string
        - name: removeShareds
          in: query
          description: >-
            Unshare custom field from specified users. Parameter is obsolete,
            use 'sharing' instead
          required: false
          type: string
        - name: settings
          in: query
          description: Custom field type settings
          required: false
          type: string
        - name: addMirrors
          in: query
          description: Add mirror fields to LinkToDatabase field
          required: false
          type: string
        - name: removeMirrors
          in: query
          description: Remove mirror fields from to LinkToDatabase field
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomFieldDescription'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /custom_item_types:
    get:
      summary: Query All Custom Item Types
      deprecated: false
      description: |-
        Returns all custom item types that belong to the whole account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_custom_item_types_empty
      tags:
        - Custom Item Types
      parameters:
        - name: title
          in: query
          description: Filter search results by title
          required: false
          type: string
        - name: limit
          in: query
          description: Result entries limit
          required: false
          type: number
        - name: type
          in: query
          description: |-
            Related type of returned custom item types
            * `Project` - Project based
            * `Task` - Task based
            * `Folder` - Folder based
          required: false
          enum:
            - Project
            - Task
            - Folder
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomItemType'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}/custom_item_types:
    get:
      summary: Query All Custom Item Types
      deprecated: false
      description: |-
        Returns all custom item types that belong to the specific space.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single_custom_item_types
      tags:
        - Custom Item Types
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Filter search results by title
          required: false
          type: string
        - name: limit
          in: query
          description: Result entries limit
          required: false
          type: number
        - name: type
          in: query
          description: |-
            Related type of returned custom item types
            * `Project` - Project based
            * `Task` - Task based
            * `Folder` - Folder based
          required: false
          enum:
            - Project
            - Task
            - Folder
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomItemType'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /custom_item_types/{customItemTypeIds}:
    get:
      summary: Query Specific Custom Item Type by ID
      deprecated: false
      description: |-
        Returns custom item type(s) for specified type ID(s).

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_custom_item_types_multi
      tags:
        - Custom Item Types
      parameters:
        - name: customItemTypeIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CustomItemType'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /custom_item_types/{customItemTypeId}/instantiate:
    post:
      summary: Create Work from Custom Item Type
      deprecated: false
      description: |-
        Create work using the specific custom item type.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_custom_item_types_single_instantiate
      tags:
        - Custom Item Types
      parameters:
        - name: customItemTypeId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: superTaskId
          in: query
          description: >-
            ID of parent task. Set this to add work from the task-based custom
            item type as a subtask. Either this parameter or parentId  is
            required. parentId and superTaskId cannot be set simultaneously.
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: parentId
          in: query
          description: >-
            ID of parent folder or project.  Set this to put work from the
            custom item type to the specific folder or project. Either this
            parameter or superTaskId  is required. parentId and superTaskId
            cannot be set simultaneously
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: title
          in: query
          description: Title
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkItemMetadata'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /data_export:
    get:
      summary: Get Data Export
      deprecated: false
      description: |-
        Get last completed Data Export.

        <b>Scopes:</b> dataExportFull
      operationId: GET_data_export_empty
      tags:
        - Data Export
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/DataExportOperation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Refresh Data Export
      deprecated: false
      description: >-
        Forces new data export generation (if it is not in progress already).
        202 code is returned in case new export generation is started. Data
        export can be requested no sooner than 1 hour after last successful data
        export. If there is fresh data export already, 200 code and latest
        export in format similar to [GET] /data_export is returned.


        <b>Scopes:</b> dataExportFull
      operationId: POST_data_export_empty
      tags:
        - Data Export
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/DataExportOperation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /data_export/{dataExportId}:
    get:
      summary: Get Data Export
      deprecated: false
      description: |-
        Get Data Export specified by id.

        <b>Scopes:</b> dataExportFull
      operationId: GET_data_export_single
      tags:
        - Data Export
      parameters:
        - name: dataExportId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/DataExportOperation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /data_export_schema:
    get:
      summary: Get Data Export Schema
      deprecated: false
      description: |-
        Get data export schema specified by version.

        <b>Scopes:</b> dataExportFull
      operationId: GET_data_export_schema_empty
      tags:
        - Data export schema
      parameters:
        - name: version
          in: query
          description: |-
            Version
            * `V0` - 
            * `V1` - 
            * `V2` - 
          required: false
          enum:
            - V0
            - V1
            - V2
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/DataExportTableSchema'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/dependencies:
    get:
      summary: Query Dependencies
      deprecated: false
      description: |-
        Get task dependencies.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_dependencies
      tags:
        - Dependencies
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Dependency'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Dependency
      deprecated: false
      description: >-
        Add dependency between tasks. If a dependency already exists, attempting
        to recreate will result in an error.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_tasks_single_dependencies
      tags:
        - Dependencies
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: predecessorId
          in: query
          description: >-
            Add predecessor task, only one of predecessorId/successorId fields
            can be specified
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: successorId
          in: query
          description: >-
            Add successor task, only one of predecessorId/successorId fields can
            be specified
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: relationType
          in: query
          description: >-
            Relation between Predecessor and Successor

            * `FinishToFinish` - Finish to finish. Allowed only when predecessor
            and successor are Planned or Milestone tasks

            * `StartToStart` - Start to start. Allowed only when both
            predecessor and successor are Planned tasks

            * `StartToFinish` - Start to finish. Allowed only when predecessor
            is Planned, and successor is Planned or Milestone task

            * `FinishToStart` - Finish to start. Allowed only when predecessor
            is Planned or Milestone, and successor is Planned task
          required: true
          enum:
            - FinishToFinish
            - StartToStart
            - StartToFinish
            - FinishToStart
          type: string
        - name: lagTime
          in: query
          description: >-
            Always in minutes, positive numbers are lag time and negative
            numbers are lead time
          required: false
          type: number
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Dependency'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /dependencies/{dependencyId}:
    get:
      summary: Query Dependencies
      deprecated: false
      description: |-
        Returns complete information about single or multiple dependencies.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_dependencies_multi
      tags:
        - Dependencies
      parameters:
        - name: dependencyId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Dependency'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Dependency
      deprecated: false
      description: |-
        Delete dependency between tasks.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_dependencies_single
      tags:
        - Dependencies
      parameters:
        - name: dependencyId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Dependency'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Dependency
      deprecated: false
      description: |-
        Change relationType of task dependency.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_dependencies_single
      tags:
        - Dependencies
      parameters:
        - name: dependencyId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: relationType
          in: query
          description: >-
            Relation between Predecessor and Successor

            * `FinishToFinish` - Finish to finish. Allowed only when predecessor
            and successor are Planned or Milestone tasks

            * `StartToStart` - Start to start. Allowed only when both
            predecessor and successor are Planned tasks

            * `StartToFinish` - Start to finish. Allowed only when predecessor
            is Planned, and successor is Planned or Milestone task

            * `FinishToStart` - Finish to start. Allowed only when predecessor
            is Planned or Milestone, and successor is Planned task
          required: true
          enum:
            - FinishToFinish
            - StartToStart
            - StartToFinish
            - FinishToStart
          type: string
        - name: lagTime
          in: query
          description: >-
            Always in minutes, positive numbers are lag time and negative
            numbers are lead time
          required: false
          type: number
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Dependency'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /ediscovery_search:
    post:
      summary: eDiscovery Search
      deprecated: false
      description: |-
        Search entities for eDiscovery report.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: POST_ediscovery_search_empty
      tags:
        - EDiscovery
      parameters:
        - name: scopes
          in: query
          description: |-
            Scopes to limit the result
            * `task` - 
            * `folder` - 
            * `attachment` - 
            * `project` - 
            * `space` - 
          required: true
          type: string
        - name: terms
          in: query
          description: Terms to search
          required: false
          type: string
        - name: targetUserId
          in: query
          description: User id to limit the result
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: timeout
          in: query
          description: Maximum approximate duration to handle requests
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folder_blueprints:
    get:
      summary: Get Folder Blueprints tree
      deprecated: false
      description: |-
        Account-level Folder Blueprints tree.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folder_blueprints_empty
      tags:
        - Folder Blueprints
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/FolderBlueprint'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}/folder_blueprints:
    get:
      summary: Get Folder Blueprints tree
      deprecated: false
      description: |-
        Space-level Folder Blueprints tree.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single_folder_blueprints
      tags:
        - Folder Blueprints
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/FolderBlueprint'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folder_blueprints/{folderBlueprintId}/launch_async:
    post:
      summary: Async Work Creation
      deprecated: false
      description: |-
        Folder Blueprint Launch, returns async job.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folder_blueprints_single_launch_async
      tags:
        - Folder Blueprints
      parameters:
        - name: folderBlueprintId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: parent
          in: query
          description: ID of parent folder
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: title
          in: query
          description: Title (required)
          required: true
          type: string
        - name: titlePrefix
          in: query
          description: Title prefix for all copied tasks
          required: false
          type: string
        - name: copyDescriptions
          in: query
          description: Copy descriptions or leave empty
          required: false
          type: boolean
        - name: notifyResponsibles
          in: query
          description: Notify those responsible
          required: false
          type: boolean
        - name: copyResponsibles
          in: query
          description: Copy those responsible
          required: false
          type: boolean
        - name: copyCustomFields
          in: query
          description: Copy custom fields
          required: false
          type: boolean
        - name: copyAttachments
          in: query
          description: Copy attachments
          required: false
          type: boolean
        - name: rescheduleDate
          in: query
          description: >-
            Date to use in task rescheduling. Note: Only active tasks can be
            rescheduled. Format: yyyy-MM-dd
          required: false
          type: string
        - name: rescheduleMode
          in: query
          description: >-
            Mode to be used for rescheduling (based on first or last date). Used
            only if reschedule date is specified.

            * `Start` - Tasks in scope are rescheduled starting from reschedule
            date

            * `End` - Tasks in scope are rescheduled ending with reschedule date
          required: false
          enum:
            - Start
            - End
          type: string
        - name: entryLimit
          in: query
          description: >-
            Maximum number of tasks/folders in tree for copy. The operation will
            fail if limit is exceeded. This should be 1..250
          required: false
          type: number
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AsyncJob'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders:
    get:
      summary: Get Folder Tree
      deprecated: false
      description: >-
        Returns a list of folders for the current account.<br>

        The method operates in two modes:<br>

        <ul>

        <li><b>Folder Tree Mode</b>: Activated if no filter parameters are
        provided. This mode returns the account's

        folders (spaces), their descendant folders, the root folder, and the
        recycle bin folder

        (note that "deleted" parameter can affect the result, see below).

        Filtering can be requested in this mode using the descendants=true
        parameter along with filter parameters.


        <li><b>Folders Mode</b>: Activated if the parameter descendant=false is
        specified or if there is at least

        one filter parameter, e.g., project=true. This mode returns only the
        account's folders filtered by the

        specified parameters.

        </ul>


        The chosen mode can be identified by the "kind" key in the result JSON
        body, with "kind": "folderTree"

        for Folder Tree Mode and "kind": "folders" for Folders Mode.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_empty
      tags:
        - Folders & Projects
      parameters:
        - name: permalink
          in: query
          description: Folder permalink, exact match
          required: false
          type: string
        - name: descendants
          in: query
          description: Adds all descendant folders to search scope
          required: false
          type: boolean
        - name: metadata
          in: query
          description: Folders metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: 'Custom field filters, exact match. Limit : 25'
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds list
          required: false
          type: boolean
        - name: project
          in: query
          description: Filter only projects (true) / only folders (false)
          required: false
          type: boolean
        - name: deleted
          in: query
          description: >-
            Get folders from Root (false) / Recycle Bin (true). This parameter
            does not affect method's mode.
          required: false
          type: boolean
        - name: contractTypes
          in: query
          description: |-
            Contract type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard types (project, folder) IDs are
            not allowed. Limit : 1000
          required: false
          type: string
        - name: pageSize
          in: query
          description: >-
            The number of folders to return (max 1000 items per page). Only
            'folders' kind is supported
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those in each new call. Only 'folders' kind is
            supported
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `superParentIds` - List of super parent folder IDs (applicable to
            'Selective Sharing' labs feature)

            * `metadata` - Folder metadata entries

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `customColumnIds` - Associated custom field IDs

            * `contractType` - Contract type

            * `description` - Description

            * `attachmentCount` - Attachment count

            * `hasAttachments` - Has attachments

            * `briefDescription` - Brief description

            * `space` - Is folder a space
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/folders:
    get:
      summary: Get Folder Tree
      deprecated: false
      description: >-
        Returns the list of folders from a specific folder in the current
        account. If the root or recycle bin

        folder id is specified, the method returns the list of folders of the
        root and recycle bin respectively.<br>

        The method operates in two modes:

        <ul>

        <li><b>Folder Tree Mode</b>: Activated if no filter parameters are
        provided. This mode returns the requested

        folders (spaces), their descendant folders, the root folder, and the
        recycle bin folder.


        <li><b>Folders Mode</b>: Activated if the parameter descendant=false is
        specified or if there is at least

        one filter parameter, e.g., project=true. This mode returns only the
        account's folders filtered by the

        specified parameters.

        </ul>


        The chosen mode can be identified by the "kind" key in the result JSON
        body, with "kind": "folderTree"

        for Folder Tree Mode and "kind": "folders" for Folders Mode.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_folders
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: permalink
          in: query
          description: Folder permalink, exact match
          required: false
          type: string
        - name: descendants
          in: query
          description: Adds all descendant folders to search scope
          required: false
          type: boolean
        - name: metadata
          in: query
          description: Folders metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: 'Custom field filters, exact match. Limit : 25'
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds list
          required: false
          type: boolean
        - name: project
          in: query
          description: Filter only projects (true) / only folders (false)
          required: false
          type: boolean
        - name: contractTypes
          in: query
          description: |-
            Contract type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard types (project, folder) IDs are
            not allowed. Limit : 1000
          required: false
          type: string
        - name: pageSize
          in: query
          description: >-
            The number of folders to return (max 1000 items per page). Only
            'folders' kind is supported
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those in each new call. Only 'folders' kind is
            supported
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `superParentIds` - List of super parent folder IDs (applicable to
            'Selective Sharing' labs feature)

            * `metadata` - Folder metadata entries

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `customColumnIds` - Associated custom field IDs

            * `contractType` - Contract type

            * `description` - Description

            * `attachmentCount` - Attachment count

            * `hasAttachments` - Has attachments

            * `briefDescription` - Brief description

            * `space` - Is folder a space

            * `finance` - Project Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Folder
      deprecated: false
      description: >-
        Create a folder within a folder. Specify virtual rootFolderId in order
        to create a folder in the account root.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_folders
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Title, cannot be empty
          required: true
          type: string
        - name: description
          in: query
          description: Folder description. If not specified, will be left blank
          required: false
          type: string
        - name: shareds
          in: query
          description: >-
            Users or invited users to share folder with. Folder is always shared
            with creator
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be added to newly created folder. Limit : 100'
          required: false
          type: string
        - name: customFields
          in: query
          description: 'List of custom fields to be set upon task creation. Limit : 100'
          required: false
          type: string
        - name: customColumns
          in: query
          description: List of custom fields associated with folder
          required: false
          type: string
        - name: project
          in: query
          description: Project settings in order to create project
          required: false
          type: string
        - name: userAccessRoles
          in: query
          description: Access Roles assigned to users with which folder will be shared
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in ownerIds & sharedIds list
          required: false
          type: boolean
        - name: customItemTypeId
          in: query
          description: Custom Item Type ID to create a project from
          required: true
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `customItemTypeId` - Custom Item Type ID

            * `contractType` - Contract type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}/folders:
    get:
      summary: Get Folder Tree
      deprecated: false
      description: >-
        Returns the list of folders from a specific space in the current
        account.<br>

        The method operates in two modes:<br>

        <ul>

        <li><b>Folder Tree Mode</b>: Activated if no filter parameters are
        provided. This mode returns the required

        space, it's descendant folders, the root folder, and the recycle bin
        folder (note that "deleted" parameter

        can affect the result, see below).

        Filtering can be requested in this mode using the descendants=true
        parameter along with filter parameters.


        <li><b>Folders Mode</b>: Activated if the parameter descendant=false is
        specified or if there is at least

        one filter parameter, e.g., project=true. This mode returns only
        required space's folders filtered by the

        specified parameters.

        </ul>

        The chosen mode can be identified by the "kind" key in the result JSON
        body, with "kind": "folderTree"

        for Folder Tree Mode and "kind": "folders" for Folders Mode.


        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single_folders
      tags:
        - Folders & Projects
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: permalink
          in: query
          description: Folder permalink, exact match
          required: false
          type: string
        - name: descendants
          in: query
          description: Adds all descendant folders to search scope
          required: false
          type: boolean
        - name: metadata
          in: query
          description: Folders metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: 'Custom field filters, exact match. Limit : 25'
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds list
          required: false
          type: boolean
        - name: project
          in: query
          description: Filter only projects (true) / only folders (false)
          required: false
          type: boolean
        - name: deleted
          in: query
          description: >-
            Get folders from Root (false) / Recycle Bin (true). This parameter
            does not affect method's mode.
          required: false
          type: boolean
        - name: contractTypes
          in: query
          description: |-
            Contract type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard types (project, folder) IDs are
            not allowed. Limit : 1000
          required: false
          type: string
        - name: pageSize
          in: query
          description: >-
            The number of folders to return (max 1000 items per page). Only
            'folders' kind is supported
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those in each new call. Only 'folders' kind is
            supported
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `superParentIds` - List of super parent folder IDs (applicable to
            'Selective Sharing' labs feature)

            * `metadata` - Folder metadata entries

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `customColumnIds` - Associated custom field IDs

            * `contractType` - Contract type

            * `description` - Description

            * `attachmentCount` - Attachment count

            * `hasAttachments` - Has attachments

            * `briefDescription` - Brief description

            * `space` - Is folder a space
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderIds}/folders_history:
    get:
      summary: Query Folders fields history
      deprecated: false
      description: |-
        Query Folders fields history.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_multi_folders_history
      tags:
        - Folders & Projects
      parameters:
        - name: folderIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: updatedDate
          in: query
          description: Update date filter
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `plannedCost` - Planned cost change history

            * `plannedFees` - Planned fees change history

            * `actualFees` - Actual fees change history

            * `actualCost` - Actual cost change history

            * `budget` - Budget change history
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/FolderChangeHistory'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /copy_folder/{folderId}:
    post:
      summary: Copy Folder
      deprecated: false
      description: |-
        Copy folder subtree, returns parent folder subtree.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_copy_folder_single
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: parent
          in: query
          description: ID of parent folder
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: title
          in: query
          description: Title, cannot be empty
          required: true
          type: string
        - name: titlePrefix
          in: query
          description: Title prefix for all copied tasks
          required: false
          type: string
        - name: copyDescriptions
          in: query
          description: Copy descriptions or leave empty
          required: false
          type: boolean
        - name: copyResponsibles
          in: query
          description: Copy responsibles
          required: false
          type: boolean
        - name: addResponsibles
          in: query
          description: Add specified users to task responsible list
          required: false
          type: string
        - name: removeResponsibles
          in: query
          description: Remove specified users from task responsible list
          required: false
          type: string
        - name: copyCustomFields
          in: query
          description: Copy custom fields
          required: false
          type: boolean
        - name: copyCustomStatuses
          in: query
          description: Copy custom statuses or set according to workflow otherwise
          required: false
          type: boolean
        - name: copyStatuses
          in: query
          description: Copy task statuses or set to Active otherwise
          required: false
          type: boolean
        - name: copyParents
          in: query
          description: Preserve parent folders
          required: false
          type: boolean
        - name: rescheduleDate
          in: query
          description: >-
            Date to use in task rescheduling. Note that only active tasks can be
            rescheduled. To activate and reschedule all tasks, use
            'rescheduleDate' in combination with copyStatuses = false
          required: false
          type: string
        - name: rescheduleMode
          in: query
          description: >-
            Mode to be used for rescheduling (based on first or last date), has
            effect only if reschedule date is specified.

            * `Start` - Tasks in scope are rescheduled starting from reschedule
            date

            * `End` - Tasks in scope are rescheduled ending with reschedule date
          required: false
          enum:
            - Start
            - End
          type: string
        - name: entryLimit
          in: query
          description: >-
            Limit maximum allowed number for tasks/folders in tree for copy,
            operation will fail if limit is exceeded, should be 1..250
          required: false
          type: number
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /copy_folder_async/{folderId}:
    post:
      summary: Copy Folder async
      deprecated: false
      description: |-
        Copy folder subtree, returns async job.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_copy_folder_async_single
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: parent
          in: query
          description: ID of parent folder
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: title
          in: query
          description: Title, cannot be empty
          required: true
          type: string
        - name: titlePrefix
          in: query
          description: Title prefix for all copied tasks
          required: false
          type: string
        - name: copyDescriptions
          in: query
          description: Copy descriptions or leave empty
          required: false
          type: boolean
        - name: copyResponsibles
          in: query
          description: Copy responsibles
          required: false
          type: boolean
        - name: addResponsibles
          in: query
          description: Add specified users to task responsible list
          required: false
          type: string
        - name: removeResponsibles
          in: query
          description: Remove specified users from task responsible list
          required: false
          type: string
        - name: copyCustomFields
          in: query
          description: Copy custom fields
          required: false
          type: boolean
        - name: copyCustomStatuses
          in: query
          description: Copy custom statuses or set according to workflow otherwise
          required: false
          type: boolean
        - name: copyStatuses
          in: query
          description: Copy task statuses or set to Active otherwise
          required: false
          type: boolean
        - name: copyParents
          in: query
          description: Preserve parent folders
          required: false
          type: boolean
        - name: rescheduleDate
          in: query
          description: >-
            Date to use in task rescheduling. Note that only active tasks can be
            rescheduled. To activate and reschedule all tasks, use
            'rescheduleDate' in combination with copyStatuses = false
          required: false
          type: string
        - name: rescheduleMode
          in: query
          description: >-
            Mode to be used for rescheduling (based on first or last date), has
            effect only if reschedule date is specified.

            * `Start` - Tasks in scope are rescheduled starting from reschedule
            date

            * `End` - Tasks in scope are rescheduled ending with reschedule date
          required: false
          enum:
            - Start
            - End
          type: string
        - name: entryLimit
          in: query
          description: >-
            Limit maximum allowed number for tasks/folders in tree for copy,
            operation will fail if limit is exceeded, should be 1..250
          required: false
          type: number
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AsyncJob'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}:
    get:
      summary: Get Folder
      deprecated: false
      description: |-
        Returns complete information about specified folders.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_multi
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds list
          required: false
          type: boolean
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `accessRoles` - Folder Access Roles

            * `customItemTypeId` - Work Item custom item type Id

            * `customColumnIds` - Associated custom field IDs

            * `contractType` - Contract type

            * `attachmentCount` - Attachment count

            * `briefDescription` - Get brief description

            * `finance` - Project Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Folder
      deprecated: false
      description: >-
        Move folder and all descendant folders and tasks to Recycle Bin unless
        they have parents outside of deletion scope.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_folders_single
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Folder
      deprecated: false
      description: |-
        Update folder.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_folders_single
      tags:
        - Folders & Projects
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Title
          required: false
          type: string
        - name: description
          in: query
          description: Folder description
          required: false
          type: string
        - name: addParents
          in: query
          description: >-
            Parent folders from same account to add, cannot contain rootFolderId
            and recycleBinId
          required: false
          type: string
        - name: removeParents
          in: query
          description: >-
            Parent folders from same account to remove, cannot contain
            rootFolderId and recycleBinId
          required: false
          type: string
        - name: addShareds
          in: query
          description: Share folder with specified users or invitations
          required: false
          type: string
        - name: removeShareds
          in: query
          description: Unshare folder from specified users or invitations
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be updated. Limit : 100'
          required: false
          type: string
        - name: restore
          in: query
          description: Restore folder from Recycled Bin
          required: false
          type: boolean
        - name: customFields
          in: query
          description: >-
            Custom fields to be updated or deleted (null value removes field).
            Limit : 100
          required: false
          type: string
        - name: customColumns
          in: query
          description: List of custom fields associated with folder
          required: false
          type: string
        - name: clearCustomColumns
          in: query
          description: Remove all custom fields associated with folder
          required: false
          type: boolean
        - name: project
          in: query
          description: >-
            Project settings (update project or convert folder to project). Use
            null value to convert project to folder
          required: false
          type: string
        - name: addAccessRoles
          in: query
          description: Specifies users with Access Roles for folder
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: removeAccessRoles
          in: query
          description: Specifies users whose Access Roles should be removed
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in ownerIds & sharedIds list
          required: true
          type: boolean
        - name: convertToCustomItemType
          in: query
          description: Custom Item Type id
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `contractType` - Contract type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Folder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /groups/{groupId}:
    get:
      summary: Query Groups
      deprecated: false
      description: |-
        Returns complete information about single group.

        <b>Scopes:</b> amReadOnlyGroup, amReadWriteGroup
      operationId: GET_groups_single
      tags:
        - Groups
      parameters:
        - name: groupId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
          x-example: ''
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Group metadata entries
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Groups
      deprecated: false
      description: |-
        Delete group by Id.

        <b>Scopes:</b> amReadWriteGroup
      operationId: DELETE_groups_single
      tags:
        - Groups
      parameters:
        - name: groupId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
          x-example: ''
        - name: test
          in: query
          description: Check that group can be removed
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Groups
      deprecated: false
      description: |-
        Update group by id.

        <b>Scopes:</b> amReadWriteGroup
      operationId: PUT_groups_single
      tags:
        - Groups
      parameters:
        - name: groupId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Title of group
          required: false
          type: string
        - name: addMembers
          in: query
          description: Add specified users to group
          required: false
          type: string
        - name: removeMembers
          in: query
          description: Remove specified users from group
          required: false
          type: string
        - name: addInvitations
          in: query
          description: Add specified invitations to group
          required: false
          type: string
        - name: removeInvitations
          in: query
          description: Remove specified invitations from group
          required: false
          type: string
        - name: parent
          in: query
          description: Parent group
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: avatar
          in: query
          description: Info for group avatar creation
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be updated. Limit : 100'
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /groups:
    get:
      summary: Query Groups
      deprecated: false
      description: |-
        Returns all groups in the account.

        <b>Scopes:</b> amReadOnlyGroup, amReadWriteGroup
      operationId: GET_groups_empty
      tags:
        - Groups
      parameters:
        - name: metadata
          in: query
          description: Metadata filter, exact match for metadata key or key-value pair
          required: false
          type: string
        - name: pageSize
          in: query
          description: Page size
          required: false
          type: number
        - name: pageToken
          in: query
          description: Page token, overrides any other parameters in request
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Group metadata
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Groups
      deprecated: false
      description: |-
        Create group in account.

        <b>Scopes:</b> amReadWriteGroup
      operationId: POST_groups_empty
      tags:
        - Groups
      parameters:
        - name: title
          in: query
          description: Title of group, required
          required: true
          type: string
        - name: members
          in: query
          description: Group users
          required: false
          type: string
        - name: parent
          in: query
          description: Parent group
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: avatar
          in: query
          description: Info for group avatar creation
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be added to newly created group. Limit : 100'
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /groups_bulk:
    put:
      summary: Bulk modify groups
      deprecated: false
      description: |-
        Update groups.

        <b>Scopes:</b> amReadWriteGroup
      operationId: PUT_groups_bulk_empty
      tags:
        - Groups
      parameters:
        - name: members
          in: query
          description: 'Update group members. Limit 20. Limit : 20'
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Group'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts/{contactIds}/hourly_rates:
    get:
      summary: Get Budget Rates
      deprecated: false
      description: |-
        Load budget rates for specified contacts.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_contacts_multi_hourly_rates
      tags:
        - Hourly rates
      parameters:
        - name: contactIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/BudgetRatesAggregated'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/hourly_rates:
    get:
      summary: Get Budget Rates
      deprecated: false
      description: |-
        Return project hourly rates.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_hourly_rates
      tags:
        - Hourly rates
      parameters:
        - name: folderId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/BudgetRatesAggregated'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Budget Rates
      deprecated: false
      description: >-
        Provision hourly rates to subject (user, placeholder) in specific
        project. Max 100 items per request.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_folders_single_hourly_rates
      tags:
        - Hourly rates
      parameters:
        - name: folderId
          in: path
          description: 'Comma-separated list of ids. Limit : 100'
          required: true
          type: string
          x-example: ''
        - name: rates
          in: query
          description: >-
            Provision hourly rates to users. Max 100 users per request. Limit :
            100
          required: true
          type: string
        - name: enableCalculations
          in: query
          description: Trigger rates recalculation
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/BudgetRatesAggregated'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /placeholders/{placeholderIds}/hourly_rates:
    get:
      summary: Get Budget Rates
      deprecated: false
      description: |-
        Load budget rates for specified placeholders.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_placeholders_multi_hourly_rates
      tags:
        - Hourly rates
      parameters:
        - name: placeholderIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/BudgetRatesAggregated'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /hourly_rates:
    put:
      summary: Modify Budget Rates
      deprecated: false
      description: >-
        Provision hourly rates to users and placeholders. Max 100 items per
        request.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_hourly_rates_empty
      tags:
        - Hourly rates
      parameters:
        - name: rates
          in: query
          description: >-
            Provision hourly rates to users. Max 100 users per request. Limit :
            100
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/BudgetRatesAggregated'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/project_team_members:
    delete:
      summary: Exclude team members
      deprecated: false
      description: |-
        Exclude team member from the project. Max 100 items per request.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_folders_single_project_team_members
      tags:
        - Hourly rates
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: rateSubjects
          in: query
          description: 'Project team members to remove. Max 100 per request. Limit : 100'
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts/{contactIds}/hourly_rates_provision:
    put:
      summary: Provision
      deprecated: false
      description: |-
        Provision hourly rates to users. Max 100 users per request.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_contacts_multi_hourly_rates_provision
      tags:
        - Hourly rates provision
      parameters:
        - name: contactIds
          in: path
          description: 'Comma-separated list of ids. Limit : 100'
          required: true
          type: string
          x-example: ''
        - name: userRates
          in: query
          description: >-
            Provision hourly rates to users. Max 100 users per request. Limit :
            100
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Rates'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /ids:
    get:
      summary: Legacy API v2 IDs converter
      deprecated: false
      description: |-
        Convert APIv2 legacy IDs to APIv4 format for specific entity type.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_ids_empty
      tags:
        - IDs
      parameters:
        - name: type
          in: query
          description: |-
            Entity type
            * `ApiV2Task` - API v2 task
            * `ApiV2Attachment` - API v2 attachment
            * `ApiV2Comment` - API v2 comment
            * `ApiV2Folder` - API v2 folder
            * `ApiV2Timelog` - API v2 timelog entry
            * `ApiV2User` - API v2 user or group
            * `ApiV2Account` - API v2 account
            * `ApiV2RequestForm` - API v2 request form
          required: true
          enum:
            - ApiV2Task
            - ApiV2Attachment
            - ApiV2Comment
            - ApiV2Folder
            - ApiV2Timelog
            - ApiV2User
            - ApiV2Account
            - ApiV2RequestForm
          type: string
        - name: ids
          in: query
          description: 'List of APIv2 legacy IDs. Limit : 1000'
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Apiv3Apiv2Id'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /invitations:
    get:
      summary: Query Invitations
      deprecated: false
      description: |-
        Get all invitations for current account.

        <b>Scopes:</b> amReadOnlyInvitation, amReadWriteInvitation
      operationId: GET_invitations_empty
      tags:
        - Invitations
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Invitation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Invitation
      deprecated: false
      description: |-
        Create an invitation into the current account.

        <b>Scopes:</b> amReadWriteInvitation
      operationId: POST_invitations_empty
      tags:
        - Invitations
      parameters:
        - name: email
          in: query
          description: Create an invitation for current email
          required: true
          type: string
        - name: firstName
          in: query
          description: First name of invited user
          required: false
          type: string
        - name: lastName
          in: query
          description: Last name of invited user
          required: false
          type: string
        - name: role
          in: query
          description: >-
            [Deprecated] It is recommended to use 'userTypeId' parameter
            instead. Set user role in account. Mutually exclusive with
            userTypeId param

            * `User` - 

            * `Collaborator` - 
          required: false
          enum:
            - User
            - Collaborator
          type: string
        - name: external
          in: query
          description: >-
            [Deprecated] It is recommended to use 'userTypeId' parameter
            instead. Set external flag for invited user. Flag 'External' can be
            applied only to the role 'User'. Mutually exclusive with userTypeId
            param
          required: false
          type: boolean
        - name: subject
          in: query
          description: Custom message subject. Not available for free accounts
          required: false
          type: string
        - name: message
          in: query
          description: Custom message body. Not available for free accounts
          required: false
          type: string
        - name: userTypeId
          in: query
          description: >-
            Set user type in account. Mutually exclusive with role and external
            params
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Invitation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /invitations/{invitationId}:
    delete:
      summary: Delete Invitation
      deprecated: false
      description: |-
        Delete invitation by ID.

        <b>Scopes:</b> amReadWriteInvitation
      operationId: DELETE_invitations_single
      tags:
        - Invitations
      parameters:
        - name: invitationId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Invitation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Invitation
      deprecated: false
      description: |-
        Update invitation by ID and/or resend invitation.

        <b>Scopes:</b> amReadWriteInvitation
      operationId: PUT_invitations_single
      tags:
        - Invitations
      parameters:
        - name: invitationId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: resend
          in: query
          description: Resend invitation
          required: false
          type: boolean
        - name: role
          in: query
          description: >-
            [Deprecated] It is recommended to use 'userTypeId' parameter
            instead. Change role of user in account for pending invitation.
            Mutually exclusive with userTypeId param. 

            * `User` - 

            * `Collaborator` - 
          required: false
          enum:
            - User
            - Collaborator
          type: string
        - name: external
          in: query
          description: >-
            [Deprecated] It is recommended to use 'userTypeId' parameter
            instead. Change external flag for pending invitation. Flag
            'External' can be applied only to the role 'User'. Mutually
            exclusive with userTypeId param
          required: false
          type: boolean
        - name: userTypeId
          in: query
          description: >-
            Change user type of user in account for pending invitation. Mutually
            exclusive with role and external params
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Invitation'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /jobroles:
    get:
      summary: Query Job Roles
      deprecated: false
      description: |-
        Returns list of all job roles in account.

        <b>Scopes:</b> amReadOnlyUser, amReadWriteUser
      operationId: GET_jobroles_empty
      tags:
        - Job Roles
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/JobRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Job Role
      deprecated: false
      description: |-
        Create Job Role.

        <b>Scopes:</b> amReadWriteUser
      operationId: POST_jobroles_empty
      tags:
        - Job Roles
      parameters:
        - name: title
          in: query
          description: Name of Job Role
          required: true
          type: string
        - name: shortTitle
          in: query
          description: Short name of Job Role
          required: false
          type: string
        - name: avatarColor
          in: query
          description: |-
            Job Role Avatar color
            * `Purple1` - #BA68C8
            * `Purple2` - #8E24AA
            * `Blue1` - #64B5F6
            * `Pink1` - #F06292
            * `Pink2` - #D81B60
            * `Red1` - #E57373
            * `Red2` - #E53935
            * `Turquoise1` - #4DD0E1
            * `Turquoise2` - #00ACC1
            * `Blue2` - #1E88E5
            * `DarkBlue1` - #7986CB
            * `Green2` - #43A047
            * `DarkBlue2` - #3949AB
            * `Green1` - #81C784
            * `Yellow1` - #FBC02D
            * `Yellow2` - #F9A825
            * `Orange2` - #F57C00
            * `DarkCyan2` - #00897B
            * `Orange1` - #FF9800
            * `DarkCyan1` - #4DB6AC
            * `YellowGreen2` - #AFB42B
            * `YellowGreen1` - #C0CA33
          required: false
          enum:
            - Purple1
            - Purple2
            - Blue1
            - Pink1
            - Pink2
            - Red1
            - Red2
            - Turquoise1
            - Turquoise2
            - Blue2
            - DarkBlue1
            - Green2
            - DarkBlue2
            - Green1
            - Yellow1
            - Yellow2
            - Orange2
            - DarkCyan2
            - Orange1
            - DarkCyan1
            - YellowGreen2
            - YellowGreen1
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/JobRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /jobroles/{jobroleId}:
    get:
      summary: Query Job Roles
      deprecated: false
      description: |-
        Get job roles list.

        <b>Scopes:</b> amReadOnlyUser, amReadWriteUser
      operationId: GET_jobroles_multi
      tags:
        - Job Roles
      parameters:
        - name: jobroleId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/JobRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Job Role
      deprecated: false
      description: |-
        Delete job role by Id.

        <b>Scopes:</b> amReadWriteUser
      operationId: DELETE_jobroles_single
      tags:
        - Job Roles
      parameters:
        - name: jobroleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/JobRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Job Role
      deprecated: false
      description: |-
        Create Job Role.

        <b>Scopes:</b> amReadWriteUser
      operationId: PUT_jobroles_single
      tags:
        - Job Roles
      parameters:
        - name: jobroleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Name of Job Role
          required: false
          type: string
        - name: shortTitle
          in: query
          description: Short name of Job Role
          required: false
          type: string
        - name: avatarColor
          in: query
          description: Job Role Avatar color
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/JobRole'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /placeholders:
    get:
      summary: Query Placeholders
      deprecated: false
      description: |-
        Returns list of all placeholders in account.

        <b>Scopes:</b> amReadOnlyUser, amReadWriteUser
      operationId: GET_placeholders_empty
      tags:
        - Placeholders
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Placeholder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /placeholders/{placeholderIds}:
    get:
      summary: Query Placeholders
      deprecated: false
      description: |-
        Get placeholders list.

        <b>Scopes:</b> amReadOnlyUser, amReadWriteUser
      operationId: GET_placeholders_multi
      tags:
        - Placeholders
      parameters:
        - name: placeholderIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Placeholder'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/rollups:
    get:
      summary: Query rollup settings for items
      deprecated: false
      description: |-
        Get rollup settings for folders.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_rollups
      tags:
        - Rollups
      parameters:
        - name: folderId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/RollupSettings'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Change rollup settings for item
      deprecated: false
      description: |-
        Update folder rollup state.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_folders_single_rollups
      tags:
        - Rollups
      parameters:
        - name: folderId
          in: path
          description: 'Comma-separated list of ids. Limit : 100'
          required: true
          type: string
          x-example: ''
        - name: rollups
          in: query
          description: 'Rollup settings updates. Limit : 20'
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/RollupSettings'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/rollups:
    get:
      summary: Query rollup settings for items
      deprecated: false
      description: |-
        Get rollup settings for tasks.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_rollups
      tags:
        - Rollups
      parameters:
        - name: taskId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/RollupSettings'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Change rollup settings for item
      deprecated: false
      description: |-
        Update task rollup state.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_tasks_single_rollups
      tags:
        - Rollups
      parameters:
        - name: taskId
          in: path
          description: 'Comma-separated list of ids. Limit : 100'
          required: true
          type: string
          x-example: ''
        - name: rollups
          in: query
          description: 'Rollup settings updates. Limit : 20'
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/RollupSettings'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces:
    get:
      summary: Get Spaces
      deprecated: false
      description: |-
        Returns a list of spaces.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_empty
      tags:
        - Spaces
      parameters:
        - name: withArchived
          in: query
          description: Include archived spaces
          required: false
          type: boolean
        - name: userIsMember
          in: query
          description: Include only spaces where user is member
          required: false
          type: boolean
        - name: withInvitations
          in: query
          description: Include invitations in space members list
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `members` - Space members
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Space'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Space
      deprecated: false
      description: |-
        Create a space. Available for all plans except Team.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_spaces_empty
      tags:
        - Spaces
      parameters:
        - name: accessType
          in: query
          description: |-
            Type of the space
            * `Locked` - 
            * `Personal` - 
            * `Private` - 
            * `Public` - 
          required: true
          enum:
            - Locked
            - Personal
            - Private
            - Public
          type: string
        - name: title
          in: query
          description: Title of the space
          required: true
          type: string
        - name: description
          in: query
          description: Description of the space
          required: false
          type: string
        - name: members
          in: query
          description: >-
            Space members. More than 1 member with the same ID is not allowed.
            Limit : 1000
          required: false
          type: string
        - name: guestRoleId
          in: query
          description: Space guest role. Available only for a public space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: defaultProjectWorkflowId
          in: query
          description: Set default project workflow for a space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: suggestedProjectWorkflows
          in: query
          description: >-
            Suggested project workflows for a space. A workflow can only be
            included in a request once. Limit : 100
          required: false
          type: string
        - name: defaultTaskWorkflowId
          in: query
          description: Set default task workflow for a space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: suggestedTaskWorkflows
          in: query
          description: >-
            Suggested task workflows for a space. A workflow can only be
            included in a request once
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in space members list
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `suggestedTaskWorkflows` - Suggested task workflows for a space

            * `suggestedProjectWorkflows` - Suggested project workflows for a
            space

            * `members` - Space members
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Space'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}:
    get:
      summary: Get Space
      deprecated: false
      description: |-
        Returns info about a space.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single
      tags:
        - Spaces
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: withInvitations
          in: query
          description: Include invitations in space members list
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `suggestedTaskWorkflows` - Suggested task workflows for a space

            * `suggestedProjectWorkflows` - Suggested project workflows for a
            space

            * `members` - Space members
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Space'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Space
      deprecated: false
      description: |-
        Delete a space.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_spaces_single
      tags:
        - Spaces
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Space
      deprecated: false
      description: |-
        Update a space.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_spaces_single
      tags:
        - Spaces
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: accessType
          in: query
          description: |-
            Type of the space
            * `Locked` - 
            * `Personal` - 
            * `Private` - 
            * `Public` - 
          required: false
          enum:
            - Locked
            - Personal
            - Private
            - Public
          type: string
        - name: title
          in: query
          description: Title of the space
          required: false
          type: string
        - name: description
          in: query
          description: Description of the space
          required: false
          type: string
        - name: membersAdd
          in: query
          description: >-
            Space members to add. A member should be passed only once in
            request. Limit : 1000
          required: false
          type: string
        - name: membersUpdate
          in: query
          description: >-
            Space members to update. A member should be passed only once in
            request
          required: false
          type: string
        - name: membersRemove
          in: query
          description: >-
            Space members to remove. A member should be passed only once in
            request. Limit : 1000
          required: false
          type: string
        - name: guestRoleId
          in: query
          description: Space guest role. Available only for a public space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: defaultProjectWorkflowId
          in: query
          description: Set default project workflow for a space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: suggestedProjectWorkflowsAdd
          in: query
          description: >-
            Add workflows to Suggested project workflows. A workflow can only be
            included in a request once. Limit : 100
          required: false
          type: string
        - name: suggestedProjectWorkflowsRemove
          in: query
          description: >-
            Remove workflows from Suggested project workflows. A workflow can
            only be included in a request once
          required: false
          type: string
        - name: defaultTaskWorkflowId
          in: query
          description: Set default task workflow for a space
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: suggestedTaskWorkflowsAdd
          in: query
          description: >-
            Add workflows to Suggested task workflows. A workflow can only be
            included in a request once
          required: false
          type: string
        - name: suggestedTaskWorkflowsRemove
          in: query
          description: >-
            Remove workflows from Suggested task workflows. A workflow can only
            be included in a request once
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in space members list
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `suggestedTaskWorkflows` - Space task suggested workflows

            * `suggestedProjectWorkflows` - Space project suggested workflows

            * `members` - Space members
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Space'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /task_blueprints:
    get:
      summary: Get Task Blueprints
      deprecated: false
      description: |-
        Account-level Task Blueprints.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_task_blueprints_empty
      tags:
        - Task Blueprints
      parameters:
        - name: limit
          in: query
          description: >-
            Limit on number of returned task blueprints. It is ignored if
            pagination is requested.
          required: false
          type: number
        - name: pageSize
          in: query
          description: Page size.
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: Next page token
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TaskBlueprint'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}/task_blueprints:
    get:
      summary: Get Task Blueprints
      deprecated: false
      description: |-
        Space-level Task Blueprints.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single_task_blueprints
      tags:
        - Task Blueprints
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: limit
          in: query
          description: >-
            Limit on number of returned task blueprints. It is ignored if
            pagination is requested.
          required: false
          type: number
        - name: pageSize
          in: query
          description: Page size.
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: Next page token
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TaskBlueprint'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /task_blueprints/{taskBlueprintId}/launch_async:
    post:
      summary: Async Work Creation
      deprecated: false
      description: |-
        Task Blueprint Launch, returns async job.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_task_blueprints_single_launch_async
      tags:
        - Task Blueprints
      parameters:
        - name: taskBlueprintId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: superTaskId
          in: query
          description: >-
            ID of parent task. Set this to add work from the task-based template
            as a subtask. Either this parameter or parentId  is required.
            parentId and superTaskId cannot be set simultaneously.
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: parentId
          in: query
          description: >-
            ID of parent folder or project.  Set this to put work from the
            template to the specific folder or project. Either this parameter or
            superTaskId  is required. parentId and superTaskId cannot be set
            simultaneously
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: title
          in: query
          description: Title (required)
          required: true
          type: string
        - name: titlePrefix
          in: query
          description: Title prefix for all copied tasks
          required: false
          type: string
        - name: copyDescriptions
          in: query
          description: Copy descriptions or leave empty
          required: false
          type: boolean
        - name: notifyResponsibles
          in: query
          description: Notify those responsible
          required: false
          type: boolean
        - name: copyResponsibles
          in: query
          description: Copy those responsible
          required: false
          type: boolean
        - name: copyCustomFields
          in: query
          description: Copy custom fields
          required: false
          type: boolean
        - name: copyAttachments
          in: query
          description: Copy attachments
          required: false
          type: boolean
        - name: rescheduleDate
          in: query
          description: >-
            Date to use in task rescheduling. Note: Only active tasks can be
            rescheduled. Format: yyyy-MM-dd
          required: false
          type: string
        - name: rescheduleMode
          in: query
          description: >-
            Mode to be used for rescheduling (based on first or last date). Used
            only if reschedule date is specified.

            * `Start` - Tasks in scope are rescheduled starting from reschedule
            date

            * `End` - Tasks in scope are rescheduled ending with reschedule date
          required: false
          enum:
            - Start
            - End
          type: string
        - name: entryLimit
          in: query
          description: >-
            Maximum number of tasks/folders in tree for copy. The operation will
            fail if limit is exceeded. This should be 1..250
          required: false
          type: number
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/AsyncJob'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks:
    get:
      summary: Query Tasks
      deprecated: false
      description: |-
        Search among all tasks in current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_empty
      tags:
        - Tasks
      parameters:
        - name: descendants
          in: query
          description: >-
            Adds all descendant folders to search scope. Applicable only for
            GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks
            endpoints
          required: false
          type: boolean
        - name: title
          in: query
          description: Title filter, contains match
          required: false
          type: string
        - name: status
          in: query
          description: |-
            Status filter, match with any of specified constants
            * `Active` - Active
            * `Deferred` - Deferred
            * `Completed` - Completed
            * `Cancelled` - Cancelled
          required: false
          type: string
        - name: importance
          in: query
          description: |-
            Importance filter, exact match
            * `High` - 
            * `Low` - 
            * `Normal` - 
          required: false
          enum:
            - High
            - Low
            - Normal
          type: string
        - name: startDate
          in: query
          description: Start date filter, date match or range
          required: false
          type: string
        - name: dueDate
          in: query
          description: Due date filter, date match or range
          required: false
          type: string
        - name: scheduledDate
          in: query
          description: >-
            Scheduled date filter. Both dates should be set in ranged version.

            Returns all tasks that have schedule intersecting with specified
            interval, date match or range
          required: false
          type: string
        - name: createdDate
          in: query
          description: Created date filter, range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: completedDate
          in: query
          description: Completed date filter, range
          required: false
          type: string
        - name: authors
          in: query
          description: Authors filter, match of any
          required: false
          type: string
        - name: responsibles
          in: query
          description: Assignees filter with specified users or invitations, match of any
          required: false
          type: string
        - name: responsiblePlaceholders
          in: query
          description: Assignee Placeholders filter, match of any
          required: false
          type: string
        - name: permalink
          in: query
          description: Task permalink, exact match
          required: false
          type: string
        - name: type
          in: query
          description: |-
            Task type
            * `Milestone` - 
            * `Backlog` - 
            * `Planned` - 
          required: false
          enum:
            - Milestone
            - Backlog
            - Planned
          type: string
        - name: limit
          in: query
          description: Limit on number of returned tasks
          required: false
          type: number
        - name: sortField
          in: query
          description: |-
            Sort field
            * `Status` - Sort by status
            * `Importance` - Sort by importance
            * `UpdatedDate` - Sort by updated date
            * `Priority` - Sort by priority (as ordered in workspace tasklist)
            * `CreatedDate` - Sort by created date
            * `Title` - Lexicographic sorting by title
            * `StartFinishInterval` - Sort by start-finish interval
            * `DueDate` - Sort by due date
            * `LastAccessDate` - Sort by last access date
            * `CompletedDate` - Sort by completed date
          required: false
          enum:
            - Status
            - Importance
            - UpdatedDate
            - Priority
            - CreatedDate
            - Title
            - StartFinishInterval
            - DueDate
            - LastAccessDate
            - CompletedDate
          type: string
        - name: sortOrder
          in: query
          description: |-
            Sort order
            * `Asc` - Ascending sort order
            * `Desc` - Descending sort order
          required: false
          enum:
            - Asc
            - Desc
          type: string
        - name: subTasks
          in: query
          description: Adds subtasks to search scope
          required: false
          type: boolean
        - name: pageSize
          in: query
          description: The number of tasks to return (max 1000 items per page)
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those  in each new call
          required: false
          type: string
        - name: metadata
          in: query
          description: Task metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: Custom field filters, exact match
          required: false
          type: string
        - name: customStatuses
          in: query
          description: Custom statuses filter
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: billingTypes
          in: query
          description: |-
            Timelog billing types filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard type (task) ID is not allowed.
            Filtering by deleted custom item types is not supported. Limit :
            1000
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Task metadata entries

            * `responsibleIds` - List of assignee user IDs

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `followerIds` - List of user IDs, who follows task, and the
            additional flag "followedByMe", that indicates if a task is followed
            by user

            * `parentIds` - List of task parent folder

            * `sharedIds` - List of user IDs, who have task share

            * `description` - Description

            * `superTaskIds` - List of supertask IDs

            * `responsiblePlaceholderIds` - List of placeholder assignee IDs

            * `superParentIds` - List of folder IDs inherited from parent task

            * `dependencyIds` - Dependency IDs

            * `billingType` - Billing type

            * `attachmentCount` - Attachment count

            * `effortAllocation` - Effort Allocation

            * `hasAttachments` - Has attachments

            * `subTaskIds` - List of subtask IDs

            * `recurrent` - Is a task recurrent

            * `authorIds` - Author IDs

            * `briefDescription` - Brief description
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/tasks:
    get:
      summary: Query Tasks
      deprecated: false
      description: |-
        Search among tasks in the folder.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_tasks
      tags:
        - Tasks
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: descendants
          in: query
          description: >-
            Adds all descendant folders to search scope. Applicable only for
            GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks
            endpoints
          required: false
          type: boolean
        - name: title
          in: query
          description: Title filter, contains match
          required: false
          type: string
        - name: status
          in: query
          description: |-
            Status filter, match with any of specified constants
            * `Active` - Active
            * `Deferred` - Deferred
            * `Completed` - Completed
            * `Cancelled` - Cancelled
          required: false
          type: string
        - name: importance
          in: query
          description: |-
            Importance filter, exact match
            * `High` - 
            * `Low` - 
            * `Normal` - 
          required: false
          enum:
            - High
            - Low
            - Normal
          type: string
        - name: startDate
          in: query
          description: Start date filter, date match or range
          required: false
          type: string
        - name: dueDate
          in: query
          description: Due date filter, date match or range
          required: false
          type: string
        - name: scheduledDate
          in: query
          description: >-
            Scheduled date filter. Both dates should be set in ranged version.

            Returns all tasks that have schedule intersecting with specified
            interval, date match or range
          required: false
          type: string
        - name: createdDate
          in: query
          description: Created date filter, range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: completedDate
          in: query
          description: Completed date filter, range
          required: false
          type: string
        - name: authors
          in: query
          description: Authors filter, match of any
          required: false
          type: string
        - name: responsibles
          in: query
          description: Assignees filter with specified users or invitations, match of any
          required: false
          type: string
        - name: responsiblePlaceholders
          in: query
          description: Assignee Placeholders filter, match of any
          required: false
          type: string
        - name: permalink
          in: query
          description: Task permalink, exact match
          required: false
          type: string
        - name: type
          in: query
          description: |-
            Task type
            * `Milestone` - 
            * `Backlog` - 
            * `Planned` - 
          required: false
          enum:
            - Milestone
            - Backlog
            - Planned
          type: string
        - name: limit
          in: query
          description: Limit on number of returned tasks
          required: false
          type: number
        - name: sortField
          in: query
          description: |-
            Sort field
            * `Status` - Sort by status
            * `Importance` - Sort by importance
            * `UpdatedDate` - Sort by updated date
            * `Priority` - Sort by priority (as ordered in workspace tasklist)
            * `CreatedDate` - Sort by created date
            * `Title` - Lexicographic sorting by title
            * `StartFinishInterval` - Sort by start-finish interval
            * `DueDate` - Sort by due date
            * `LastAccessDate` - Sort by last access date
            * `CompletedDate` - Sort by completed date
          required: false
          enum:
            - Status
            - Importance
            - UpdatedDate
            - Priority
            - CreatedDate
            - Title
            - StartFinishInterval
            - DueDate
            - LastAccessDate
            - CompletedDate
          type: string
        - name: sortOrder
          in: query
          description: |-
            Sort order
            * `Asc` - Ascending sort order
            * `Desc` - Descending sort order
          required: false
          enum:
            - Asc
            - Desc
          type: string
        - name: subTasks
          in: query
          description: Adds subtasks to search scope
          required: false
          type: boolean
        - name: pageSize
          in: query
          description: The number of tasks to return (max 1000 items per page)
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those  in each new call
          required: false
          type: string
        - name: metadata
          in: query
          description: Task metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: Custom field filters, exact match
          required: false
          type: string
        - name: customStatuses
          in: query
          description: Custom statuses filter
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: billingTypes
          in: query
          description: |-
            Timelog billing types filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard type (task) ID is not allowed.
            Filtering by deleted custom item types is not supported. Limit :
            1000
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Task metadata entries

            * `responsibleIds` - List of assignee user IDs

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `followerIds` - List of user IDs, who follows task, and the
            additional flag "followedByMe", that indicates if a task is followed
            by user

            * `parentIds` - List of task parent folder

            * `sharedIds` - List of user IDs, who have task share

            * `description` - Description

            * `superTaskIds` - List of supertask IDs

            * `responsiblePlaceholderIds` - List of placeholder assignee IDs

            * `superParentIds` - List of folder IDs inherited from parent task

            * `dependencyIds` - Dependency IDs

            * `billingType` - Billing type

            * `attachmentCount` - Attachment count

            * `effortAllocation` - Effort Allocation

            * `hasAttachments` - Has attachments

            * `subTaskIds` - List of subtask IDs

            * `recurrent` - Is a task recurrent

            * `authorIds` - Author IDs

            * `briefDescription` - Brief description

            * `finance` - Task Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Task
      deprecated: false
      description: >-
        Create a task in a folder. The folder specified by {folderId} will
        become the 'parent' folder for the new task. To create a task in the
        account root, use the Root Folder API ID. When creating a subtask, use
        the Root API ID as {folderId} and specify the parent task in the
        'superTasks' parameter.


        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_folders_single_tasks
      tags:
        - Tasks
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Title of task, required
          required: true
          type: string
        - name: description
          in: query
          description: Description of task, will be left blank, if not set
          required: false
          type: string
        - name: status
          in: query
          description: |-
            Status of task. Not available for the Team plan
            * `Active` - Active
            * `Deferred` - Deferred
            * `Completed` - Completed
            * `Cancelled` - Cancelled
          required: false
          enum:
            - Active
            - Deferred
            - Completed
            - Cancelled
          type: string
        - name: importance
          in: query
          description: |-
            Importance of task
            * `High` - 
            * `Low` - 
            * `Normal` - 
          required: false
          enum:
            - High
            - Low
            - Normal
          type: string
        - name: dates
          in: query
          description: Task dates. If not specified, a backlogged task is created
          required: false
          type: string
        - name: shareds
          in: query
          description: >-
            Shares task with specified users or invitations. The task is always
            shared with the author.
          required: false
          type: string
        - name: parents
          in: query
          description: Parent folders for newly created task. Can not contain recycleBinId
          required: false
          type: string
        - name: responsibles
          in: query
          description: Makes specified users or invitations assignee for the task
          required: false
          type: string
        - name: responsiblePlaceholders
          in: query
          description: Makes specified placeholders assignee for the task
          required: false
          type: string
        - name: followers
          in: query
          description: Add specified users to task followers
          required: false
          type: string
        - name: follow
          in: query
          description: Follow task
          required: false
          type: boolean
        - name: priorityBefore
          in: query
          description: Put newly created task before specified task in task list
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: priorityAfter
          in: query
          description: Put newly created task after specified task in task list
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: superTasks
          in: query
          description: Add the task as subtask to specified tasks
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be added to newly created task. Limit : 100'
          required: false
          type: string
        - name: customFields
          in: query
          description: 'List of custom fields to set in newly created task. Limit : 100'
          required: false
          type: string
        - name: customStatus
          in: query
          description: Custom status ID
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: effortAllocation
          in: query
          description: 'Set Task Effort fields: mode, total Effort'
          required: false
          type: string
        - name: billingType
          in: query
          description: |-
            Task's timelogs billing type
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          enum:
            - Billable
            - NonBillable
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: customItemTypeId
          in: query
          description: Custom Item Type ID to create a task from
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `customItemTypeId` - Custom Item Type ID

            * `billingType` - Billing type

            * `effortAllocation` - Effort Allocation

            * `responsiblePlaceholderIds` - List of placeholder assignee IDs
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /spaces/{spaceId}/tasks:
    get:
      summary: Query Tasks
      deprecated: false
      description: |-
        Search among tasks in space.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_spaces_single_tasks
      tags:
        - Tasks
      parameters:
        - name: spaceId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: descendants
          in: query
          description: >-
            Adds all descendant folders to search scope. Applicable only for
            GET/folders/{folderId}/tasks and GET/spaces/{spaceId}/tasks
            endpoints
          required: false
          type: boolean
        - name: title
          in: query
          description: Title filter, contains match
          required: false
          type: string
        - name: status
          in: query
          description: |-
            Status filter, match with any of specified constants
            * `Active` - Active
            * `Deferred` - Deferred
            * `Completed` - Completed
            * `Cancelled` - Cancelled
          required: false
          type: string
        - name: importance
          in: query
          description: |-
            Importance filter, exact match
            * `High` - 
            * `Low` - 
            * `Normal` - 
          required: false
          enum:
            - High
            - Low
            - Normal
          type: string
        - name: startDate
          in: query
          description: Start date filter, date match or range
          required: false
          type: string
        - name: dueDate
          in: query
          description: Due date filter, date match or range
          required: false
          type: string
        - name: scheduledDate
          in: query
          description: >-
            Scheduled date filter. Both dates should be set in ranged version.

            Returns all tasks that have schedule intersecting with specified
            interval, date match or range
          required: false
          type: string
        - name: createdDate
          in: query
          description: Created date filter, range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Updated date filter, range
          required: false
          type: string
        - name: completedDate
          in: query
          description: Completed date filter, range
          required: false
          type: string
        - name: authors
          in: query
          description: Authors filter, match of any
          required: false
          type: string
        - name: responsibles
          in: query
          description: Assignees filter with specified users or invitations, match of any
          required: false
          type: string
        - name: responsiblePlaceholders
          in: query
          description: Assignee Placeholders filter, match of any
          required: false
          type: string
        - name: permalink
          in: query
          description: Task permalink, exact match
          required: false
          type: string
        - name: type
          in: query
          description: |-
            Task type
            * `Milestone` - 
            * `Backlog` - 
            * `Planned` - 
          required: false
          enum:
            - Milestone
            - Backlog
            - Planned
          type: string
        - name: limit
          in: query
          description: Limit on number of returned tasks
          required: false
          type: number
        - name: sortField
          in: query
          description: |-
            Sort field
            * `Status` - Sort by status
            * `Importance` - Sort by importance
            * `UpdatedDate` - Sort by updated date
            * `Priority` - Sort by priority (as ordered in workspace tasklist)
            * `CreatedDate` - Sort by created date
            * `Title` - Lexicographic sorting by title
            * `StartFinishInterval` - Sort by start-finish interval
            * `DueDate` - Sort by due date
            * `LastAccessDate` - Sort by last access date
            * `CompletedDate` - Sort by completed date
          required: false
          enum:
            - Status
            - Importance
            - UpdatedDate
            - Priority
            - CreatedDate
            - Title
            - StartFinishInterval
            - DueDate
            - LastAccessDate
            - CompletedDate
          type: string
        - name: sortOrder
          in: query
          description: |-
            Sort order
            * `Asc` - Ascending sort order
            * `Desc` - Descending sort order
          required: false
          enum:
            - Asc
            - Desc
          type: string
        - name: subTasks
          in: query
          description: Adds subtasks to search scope
          required: false
          type: boolean
        - name: pageSize
          in: query
          description: The number of tasks to return (max 1000 items per page)
          required: false
          type: number
        - name: nextPageToken
          in: query
          description: >-
            A pagination request will return a token that applies an offset to
            the next page. The returned value should be used as an input
            parameter in the next request. Parameter pageSize can be omitted in
            this case. If you included optional fields to the first request, you
            will need to include those  in each new call
          required: false
          type: string
        - name: metadata
          in: query
          description: Task metadata filter
          required: false
          type: string
        - name: customField
          in: query
          description: >-
            [Deprecated] It is recommended to use 'customFields' parameter.
            Custom field filter
          required: false
          type: string
        - name: customFields
          in: query
          description: Custom field filters, exact match
          required: false
          type: string
        - name: customStatuses
          in: query
          description: Custom statuses filter
          required: false
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: billingTypes
          in: query
          description: |-
            Timelog billing types filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: customItemTypes
          in: query
          description: >-
            Custom item types filter. Standard type (task) ID is not allowed.
            Filtering by deleted custom item types is not supported. Limit :
            1000
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `metadata` - Task metadata entries

            * `responsibleIds` - List of assignee user IDs

            * `customItemTypeId` - Work Item custom item type Id

            * `customFields` - Custom fields

            * `followerIds` - List of user IDs, who follows task, and the
            additional flag "followedByMe", that indicates if a task is followed
            by user

            * `parentIds` - List of task parent folder

            * `sharedIds` - List of user IDs, who have task share

            * `description` - Description

            * `superTaskIds` - List of supertask IDs

            * `responsiblePlaceholderIds` - List of placeholder assignee IDs

            * `superParentIds` - List of folder IDs inherited from parent task

            * `dependencyIds` - Dependency IDs

            * `billingType` - Billing type

            * `attachmentCount` - Attachment count

            * `effortAllocation` - Effort Allocation

            * `hasAttachments` - Has attachments

            * `subTaskIds` - List of subtask IDs

            * `recurrent` - Is a task recurrent

            * `authorIds` - Author IDs

            * `briefDescription` - Brief description
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskIds}/tasks_history:
    get:
      summary: Query Tasks fields history
      deprecated: false
      description: |-
        Query Tasks fields history.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_multi_tasks_history
      tags:
        - Tasks
      parameters:
        - name: taskIds
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: updatedDate
          in: query
          description: Update date filter
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `plannedCost` - Planned cost change history

            * `plannedFees` - Planned fees change history

            * `actualFees` - Actual fees change history

            * `actualCost` - Actual cost change history
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TaskChangeHistory'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}:
    get:
      summary: Query Tasks
      deprecated: false
      description: |-
        Returns complete information about single or multiple tasks.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_multi
      tags:
        - Tasks
      parameters:
        - name: taskId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `customItemTypeId` - Work Item custom item type Id

            * `billingType` - Billing type

            * `attachmentCount` - Attachment count

            * `responsiblePlaceholderIds` - List of placeholder responsible IDs

            * `effortAllocation` - Effort Allocation

            * `recurrent` - Add field to indicate if task is recurrent

            * `finance` - Task Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Tasks
      deprecated: false
      description: |-
        Delete task by Id.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_tasks_single
      tags:
        - Tasks
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Tasks
      deprecated: false
      description: |-
        Update task.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_tasks_single
      tags:
        - Tasks
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Title of task
          required: false
          type: string
        - name: description
          in: query
          description: Task Description
          required: false
          type: string
        - name: status
          in: query
          description: |-
            Task status. Not available for the Team plan
            * `Active` - Active
            * `Deferred` - Deferred
            * `Completed` - Completed
            * `Cancelled` - Cancelled
          required: false
          enum:
            - Active
            - Deferred
            - Completed
            - Cancelled
          type: string
        - name: importance
          in: query
          description: |-
            Task importance
            * `High` - 
            * `Low` - 
            * `Normal` - 
          required: false
          enum:
            - High
            - Low
            - Normal
          type: string
        - name: dates
          in: query
          description: Reschedule task and/or change task type
          required: false
          type: string
        - name: addParents
          in: query
          description: >-
            Put task into specified folders of same account. Cannot contain
            RecycleBin folder
          required: false
          type: string
        - name: removeParents
          in: query
          description: >-
            Remove task from specified folders. Can not contain RecycleBin
            folder
          required: false
          type: string
        - name: addShareds
          in: query
          description: Shared task with specified users or invitations
          required: false
          type: string
        - name: removeShareds
          in: query
          description: Unshare task from specified users or invitations
          required: false
          type: string
        - name: addResponsibles
          in: query
          description: Add specified users or invitations to assignee list
          required: false
          type: string
        - name: removeResponsibles
          in: query
          description: Remove specified users or invitations from assignee list
          required: false
          type: string
        - name: addResponsiblePlaceholders
          in: query
          description: Add specified placeholders to placeholder assignee list
          required: false
          type: string
        - name: removeResponsiblePlaceholders
          in: query
          description: Remove specified placeholders from placeholder assignee list
          required: false
          type: string
        - name: addFollowers
          in: query
          description: Add specified users to task followers
          required: false
          type: string
        - name: follow
          in: query
          description: Follow task
          required: false
          type: boolean
        - name: priorityBefore
          in: query
          description: Put task in task list before specified task
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: priorityAfter
          in: query
          description: Put task in task list after specified task
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: addSuperTasks
          in: query
          description: Add the task as subtask to specified tasks
          required: false
          type: string
        - name: removeSuperTasks
          in: query
          description: Remove the task form specified tasks subtasks
          required: false
          type: string
        - name: metadata
          in: query
          description: 'Metadata to be updated (null value removes entry). Limit : 100'
          required: false
          type: string
        - name: customFields
          in: query
          description: >-
            Custom fields to be updated or deleted (null value removes field).
            Limit : 100
          required: false
          type: string
        - name: customStatus
          in: query
          description: Custom status ID
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: restore
          in: query
          description: Restore task from Recycled Bin
          required: false
          type: boolean
        - name: effortAllocation
          in: query
          description: 'Set Task Effort fields: mode, total Effort'
          required: false
          type: string
        - name: billingType
          in: query
          description: |-
            Task's timelogs billing type
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          enum:
            - Billable
            - NonBillable
          type: string
        - name: withInvitations
          in: query
          description: Include invitations in sharedIds & responsibleIds lists
          required: false
          type: boolean
        - name: convertToCustomItemType
          in: query
          description: Custom Item Type id
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: plainTextCustomFields
          in: query
          description: Strip HTML tags from custom fields
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `billingType` - Billing type

            * `effortAllocation` - Effort Allocation

            * `responsiblePlaceholderIds` - List of placeholder assignee IDs
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Task'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /timelog_categories:
    get:
      summary: Query Timelog categories
      deprecated: false
      description: >-
        Get timelog categories in account.


        <b>Scopes:</b> Default, amReadOnlyTimelogCategory,
        amReadWriteTimelogCategory, wsReadOnly, wsReadWrite
      operationId: GET_timelog_categories_empty
      tags:
        - Timelog categories
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TimelogCategory'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /timelogs:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get all timelog records in current account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_timelogs_empty
      tags:
        - Timelogs
      parameters:
        - name: createdDate
          in: query
          description: Created date filter, exact match or range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: trackedDate
          in: query
          description: Tracked date filter, exact match or range
          required: false
          type: string
        - name: me
          in: query
          description: If present - only timelogs created by current user are returned
          required: false
          type: boolean
        - name: descendants
          in: query
          description: Adds all descendant tasks to search scope
          required: false
          type: boolean
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: timelogCategories
          in: query
          description: 'Get timelog records for specified categories. Limit : 1000'
          required: false
          type: string
        - name: billingTypes
          in: query
          description: |-
            Billing type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: approvalStatuses
          in: query
          description: |-
            Approval status filter
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /contacts/{contactId}/timelogs:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get all timelog records that were created by the user.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_contacts_single_timelogs
      tags:
        - Timelogs
      parameters:
        - name: contactId
          in: path
          description: ''
          required: true
          x-example: ''
          type: string
        - name: createdDate
          in: query
          description: Created date filter, exact match or range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: trackedDate
          in: query
          description: Tracked date filter, exact match or range
          required: false
          type: string
        - name: me
          in: query
          description: If present - only timelogs created by current user are returned
          required: false
          type: boolean
        - name: descendants
          in: query
          description: Adds all descendant tasks to search scope
          required: false
          type: boolean
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: timelogCategories
          in: query
          description: 'Get timelog records for specified categories. Limit : 1000'
          required: false
          type: string
        - name: billingTypes
          in: query
          description: |-
            Billing type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: approvalStatuses
          in: query
          description: |-
            Approval status filter
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type

            * `finance` - Timelog Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /folders/{folderId}/timelogs:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get all timelog records for a folder.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_folders_single_timelogs
      tags:
        - Timelogs
      parameters:
        - name: folderId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: createdDate
          in: query
          description: Created date filter, exact match or range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: trackedDate
          in: query
          description: Tracked date filter, exact match or range
          required: false
          type: string
        - name: me
          in: query
          description: If present - only timelogs created by current user are returned
          required: false
          type: boolean
        - name: descendants
          in: query
          description: Adds all descendant tasks to search scope
          required: false
          type: boolean
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: timelogCategories
          in: query
          description: 'Get timelog records for specified categories. Limit : 1000'
          required: false
          type: string
        - name: billingTypes
          in: query
          description: |-
            Billing type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: approvalStatuses
          in: query
          description: |-
            Approval status filter
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type

            * `finance` - Timelog Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /tasks/{taskId}/timelogs:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get all timelog records for a task.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_tasks_single_timelogs
      tags:
        - Timelogs
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: createdDate
          in: query
          description: Created date filter, exact match or range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: trackedDate
          in: query
          description: Tracked date filter, exact match or range
          required: false
          type: string
        - name: me
          in: query
          description: If present - only timelogs created by current user are returned
          required: false
          type: boolean
        - name: descendants
          in: query
          description: Adds all descendant tasks to search scope
          required: false
          type: boolean
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: timelogCategories
          in: query
          description: 'Get timelog records for specified categories. Limit : 1000'
          required: false
          type: string
        - name: billingTypes
          in: query
          description: |-
            Billing type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: approvalStatuses
          in: query
          description: |-
            Approval status filter
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type

            * `finance` - Timelog Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Timelog
      deprecated: false
      description: |-
        Create timelog record for task.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: POST_tasks_single_timelogs
      tags:
        - Timelogs
      parameters:
        - name: taskId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: comment
          in: query
          description: Timelog record comment
          required: true
          type: string
        - name: hours
          in: query
          description: Time to log in hours
          required: true
          type: number
        - name: trackedDate
          in: query
          description: Date to register time
          required: true
          type: string
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: categoryId
          in: query
          description: Timelog category
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: onBehalfOf
          in: query
          description: Create a time entry for another user
          required: false
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /timelog_categories/{timelogCategoryId}/timelogs:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get all timelog records with specific timelog category.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_timelog_categories_single_timelogs
      tags:
        - Timelogs
      parameters:
        - name: timelogCategoryId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: createdDate
          in: query
          description: Created date filter, exact match or range
          required: false
          type: string
        - name: updatedDate
          in: query
          description: Last updated date filter, exact match or range
          required: false
          type: string
        - name: trackedDate
          in: query
          description: Tracked date filter, exact match or range
          required: false
          type: string
        - name: me
          in: query
          description: If present - only timelogs created by current user are returned
          required: false
          type: boolean
        - name: descendants
          in: query
          description: Adds all descendant tasks to search scope
          required: false
          type: boolean
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: timelogCategories
          in: query
          description: 'Get timelog records for specified categories. Limit : 1000'
          required: false
          type: string
        - name: billingTypes
          in: query
          description: |-
            Billing type filter
            * `Billable` - Billable
            * `NonBillable` - Non-Billable
          required: false
          type: string
        - name: approvalStatuses
          in: query
          description: |-
            Approval status filter
            * `Draft` - 
            * `Approved` - 
            * `Rejected` - 
            * `Cancelled` - 
            * `Pending` - 
          required: false
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type

            * `finance` - Timelog Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /timelogs/{timelogId}:
    get:
      summary: Query Timelogs
      deprecated: false
      description: |-
        Get timelog record by IDs.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_timelogs_multi
      tags:
        - Timelogs
      parameters:
        - name: timelogId
          in: path
          description: 'Comma-separated list of ids. Limit : 1000'
          required: true
          type: string
          x-example: ''
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type

            * `finance` - Timelog Finance fields
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Timelog
      deprecated: false
      description: |-
        Delete Timelog record by ID.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: DELETE_timelogs_single
      tags:
        - Timelogs
      parameters:
        - name: timelogId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify Timelog
      deprecated: false
      description: |-
        Update timelog by Id.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_timelogs_single
      tags:
        - Timelogs
      parameters:
        - name: timelogId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: comment
          in: query
          description: Timelog comment
          required: false
          type: string
        - name: hours
          in: query
          description: New timelog tracked hours
          required: false
          type: number
        - name: trackedDate
          in: query
          description: New timelog date
          required: false
          type: string
        - name: plainText
          in: query
          description: Get comment text as plain text, HTML otherwise
          required: false
          type: boolean
        - name: categoryId
          in: query
          description: Timelog category
          required: false
          pattern: ^([A-Z0-9]){16}$
          type: string
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `approvalStatus` - Timesheet approval status

            * `billingType` - Timelog billing type
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Timelog'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /timesheet_submission_rules:
    get:
      summary: Get Timesheet Submission Rules
      deprecated: false
      description: |-
        List all timesheet submission rules in account.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_timesheet_submission_rules_empty
      tags:
        - Timesheet Submission Rules
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TimesheetSubmissionRule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedules/{workscheduleId}/timesheet_submission_rules:
    get:
      summary: Get Timesheet Submission Rules
      deprecated: false
      description: |-
        Get timesheet submission rule.

        <b>Scopes:</b> Default, wsReadOnly, wsReadWrite
      operationId: GET_workschedules_single_timesheet_submission_rules
      tags:
        - Timesheet Submission Rules
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TimesheetSubmissionRule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Timesheet Submission Rules
      deprecated: false
      description: |-
        Update timesheet submission rule.

        <b>Scopes:</b> Default, wsReadWrite
      operationId: PUT_workschedules_single_timesheet_submission_rules
      tags:
        - Timesheet Submission Rules
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: enabled
          in: query
          description: Switch to toggle on/off timesheet submission rule
          required: false
          type: boolean
        - name: ruleType
          in: query
          description: |-
            Type of timesheet submission rule
            * `Hard` - Hard
            * `Soft` - Soft
          required: false
          enum:
            - Hard
            - Soft
          type: string
        - name: frequency
          in: query
          description: |-
            Frequency for timesheet submission rule
            * `Week` - Week
            * `Day` - Day
          required: false
          enum:
            - Week
            - Day
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/TimesheetSubmissionRule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /user_schedule_exclusions:
    get:
      summary: Query User Schedule exception
      deprecated: false
      description: |-
        Get exceptions for given users and date range.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_user_schedule_exclusions_empty
      tags:
        - User Schedule exceptions
      parameters:
        - name: dateRange
          in: query
          description: Query exceptions for given date range
          required: false
          type: string
        - name: userIds
          in: query
          description: 'Query exceptions for given user ids. Limit : 100000'
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create User Schedule exception
      deprecated: false
      description: |-
        Create new exception for given user.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: POST_user_schedule_exclusions_empty
      tags:
        - User Schedule exceptions
      parameters:
        - name: userId
          in: query
          description: User id to add new exception
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
        - name: fromDate
          in: query
          description: New exception from date
          required: true
          type: string
        - name: toDate
          in: query
          description: New exception to date
          required: true
          type: string
        - name: exclusionType
          in: query
          description: |-
            Type of new exception
            * `VacationPTO` - Paid vacations
            * `Overtime` - Additional working days
            * `OtherNonWorking` - Other non-working days
          required: true
          enum:
            - VacationPTO
            - Overtime
            - OtherNonWorking
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /user_schedule_exclusions/{userScheduleExclusionId}:
    get:
      summary: Query User Schedule exception
      deprecated: false
      description: |-
        Get exception by Id.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_user_schedule_exclusions_single
      tags:
        - User Schedule exceptions
      parameters:
        - name: userScheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete User Schedule exception
      deprecated: false
      description: |-
        Delete exception.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: DELETE_user_schedule_exclusions_single
      tags:
        - User Schedule exceptions
      parameters:
        - name: userScheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update User Schedule exception
      deprecated: false
      description: |-
        Update exception for given user.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: PUT_user_schedule_exclusions_single
      tags:
        - User Schedule exceptions
      parameters:
        - name: userScheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: fromDate
          in: query
          description: Exception from date
          required: false
          type: string
        - name: toDate
          in: query
          description: Exception to date
          required: false
          type: string
        - name: exclusionType
          in: query
          description: |-
            Type of exception
            * `VacationPTO` - Paid vacations
            * `Overtime` - Additional working days
            * `OtherNonWorking` - Other non-working days
          required: false
          enum:
            - VacationPTO
            - Overtime
            - OtherNonWorking
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /user_types:
    get:
      summary: Get User Types
      deprecated: false
      description: |-
        User types.

        <b>Scopes:</b> amReadOnlyAccessRole
      operationId: GET_user_types_empty
      tags:
        - User Types
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserType'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /users/{userId}:
    get:
      summary: Query User
      deprecated: false
      description: |-
        Returns information about single user.

        <b>Scopes:</b> amReadOnlyUser, amReadWriteUser
      operationId: GET_users_single
      tags:
        - Users
      parameters:
        - name: userId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/User'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Modify User
      deprecated: false
      description: |-
        Update users by ID (accessible to Admins only).

        <b>Scopes:</b> amReadWriteUser
      operationId: PUT_users_single
      tags:
        - Users
      parameters:
        - name: userId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){8}$
          type: string
          x-example: ''
        - name: profile
          in: query
          description: >-
            [Deprecated] It is recommended to use 'userTypeId' parameter
            instead. Profile to be updated. Mutually exclusive with other params
          required: true
          type: string
        - name: userTypeId
          in: query
          description: >-
            Change user type of user in account. Mutually exclusive with other
            params
          required: false
          type: string
        - name: active
          in: query
          description: Activate or deactivate user. Mutually exclusive with other params
          required: false
          type: boolean
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/User'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /version:
    get:
      summary: API Version
      deprecated: false
      description: Returns current API version info.
      operationId: GET_version_empty
      tags:
        - Version
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Apiv3Version'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedule_exclusions/{workscheduleExclusionId}:
    get:
      summary: Query Work Schedule exceptions
      deprecated: false
      description: |-
        Get exception by Id.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_workschedule_exclusions_single
      tags:
        - Work Schedule exceptions
      parameters:
        - name: workscheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Work Schedule exception
      deprecated: false
      description: |-
        Delete exception by id.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: DELETE_workschedule_exclusions_single
      tags:
        - Work Schedule exceptions
      parameters:
        - name: workscheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Work Schedule exception
      deprecated: false
      description: |-
        Update exception by Id.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: PUT_workschedule_exclusions_single
      tags:
        - Work Schedule exceptions
      parameters:
        - name: workscheduleExclusionId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: fromDate
          in: query
          description: Exception from date
          required: false
          type: string
        - name: toDate
          in: query
          description: Exception to date
          required: false
          type: string
        - name: exclusionType
          in: query
          description: >-
            Type of exception

            * `PublicHolidays` - Non-working days because of public holidays

            * `OtherEvent` - Non-working days because of some company or private
            event

            * `AdditionalWorkDays` - Additional working days, i.e. during
            weekends
          required: false
          enum:
            - PublicHolidays
            - OtherEvent
            - AdditionalWorkDays
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedules/{workscheduleId}/workschedule_exclusions:
    get:
      summary: Query Work Schedule exceptions
      deprecated: false
      description: |-
        Get all exceptions for given schedule.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_workschedules_single_workschedule_exclusions
      tags:
        - Work Schedule exceptions
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: dateRange
          in: query
          description: Date range to query exceptions
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Work Schedule exception
      deprecated: false
      description: |-
        Create exception for given schedule.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: POST_workschedules_single_workschedule_exclusions
      tags:
        - Work Schedule exceptions
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: fromDate
          in: query
          description: New exception from date
          required: true
          type: string
        - name: toDate
          in: query
          description: New exception to date
          required: true
          type: string
        - name: exclusionType
          in: query
          description: >-
            Type of new exception

            * `PublicHolidays` - Non-working days because of public holidays

            * `OtherEvent` - Non-working days because of some company or private
            event

            * `AdditionalWorkDays` - Additional working days, i.e. during
            weekends
          required: true
          enum:
            - PublicHolidays
            - OtherEvent
            - AdditionalWorkDays
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkScheduleException'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedules:
    get:
      summary: Query Work Schedules
      deprecated: false
      description: |-
        Returns list of all work schedules in account.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_workschedules_empty
      tags:
        - Work Schedules
      parameters:
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `userIds` - Users assigned to WorkSchedule
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Work Schedule
      deprecated: false
      description: |-
        Create schedule in account.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: POST_workschedules_empty
      tags:
        - Work Schedules
      parameters:
        - name: title
          in: query
          description: Name of schedule
          required: true
          type: string
        - name: workweek
          in: query
          description: 'Work week: working and non-working days. Limit : 7'
          required: true
          type: string
        - name: addUsers
          in: query
          description: 'User ids to assign to the schedule. Limit : 100000'
          required: false
          type: string
        - name: capacityMinutes
          in: query
          description: Custom capacity in minutes
          required: false
          type: number
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `userIds` - Users assigned to WorkSchedule
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workschedules/{workscheduleId}:
    get:
      summary: Query Work Schedules
      deprecated: false
      description: |-
        Get work schedule by Id.

        <b>Scopes:</b> amReadOnlyWorkSchedule, amReadWriteWorkSchedule
      operationId: GET_workschedules_single
      tags:
        - Work Schedules
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `userIds` - Users assigned to WorkSchedule
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    delete:
      summary: Delete Work Schedule
      deprecated: false
      description: |-
        Delete work schedule from account.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: DELETE_workschedules_single
      tags:
        - Work Schedules
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    put:
      summary: Update Work Schedule
      deprecated: false
      description: |-
        Create work schedule in account.

        <b>Scopes:</b> amReadWriteWorkSchedule
      operationId: PUT_workschedules_single
      tags:
        - Work Schedules
      parameters:
        - name: workscheduleId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: title
          in: query
          description: Name of work schedule
          required: false
          type: string
        - name: workweek
          in: query
          description: 'Work week: working and non-working days. Limit : 7'
          required: false
          type: string
        - name: addUsers
          in: query
          description: 'User ids to assign to the schedule. Limit : 100000'
          required: false
          type: string
        - name: removeUsers
          in: query
          description: User ids to unassign from the schedule
          required: false
          type: string
        - name: capacityMinutes
          in: query
          description: Custom capacity in minutes
          required: false
          type: number
        - name: fields
          in: query
          description: >-
            Json string array of optional fields to be included in the response
            model

            * `userIds` - Users assigned to WorkSchedule
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/WorkSchedule'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workflows:
    get:
      summary: Query Workflows
      deprecated: false
      description: >-
        Returns list of workflows with custom statuses. Only account-wide
        workflows are returned.


        <b>Scopes:</b> Default, amReadOnlyWorkflow, amReadWriteWorkflow,
        wsReadOnly, wsReadWrite
      operationId: GET_workflows_empty
      tags:
        - Workflows
      parameters: []
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Workflow'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
    post:
      summary: Create Workflow
      deprecated: false
      description: |-
        Create workflow in account.

        <b>Scopes:</b> amReadWriteWorkflow
      operationId: POST_workflows_empty
      tags:
        - Workflows
      parameters:
        - name: name
          in: query
          description: Name of workflow, required
          required: true
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Workflow'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
  /workflows/{workflowId}:
    put:
      summary: Modify Workflow
      deprecated: false
      description: |-
        Update workflow or custom statuses.

        <b>Scopes:</b> amReadWriteWorkflow
      operationId: PUT_workflows_single
      tags:
        - Workflows
      parameters:
        - name: workflowId
          in: path
          description: ''
          required: true
          pattern: ^([A-Z0-9]){16}$
          type: string
          x-example: ''
        - name: name
          in: query
          description: Name of workflow (128 symbols max)
          required: false
          type: string
        - name: hidden
          in: query
          description: Workflow is hidden
          required: false
          type: boolean
        - name: customStatus
          in: query
          description: Custom status
          required: false
          type: string
      responses:
        '200':
          description: success response
          headers: {}
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Workflow'
              kind:
                $ref: '#/definitions/ResponseKind'
        '400':
          description: client-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: server-side error response
          headers: {}
          schema:
            $ref: '#/definitions/ErrorResponse'
      security: []
      produces:
        - application/json
security:
  - api_key: []
definitions:
  Account:
    type: object
    properties:
      metadata:
        type: array
        description: >-
          List of account metadata entries. Entries could be read by all users
          of account and modified by admins only
        items:
          $ref: '#/definitions/Metadata'
      createdDate:
        type: string
        description: Registration date
      workDays:
        type: array
        description: >-
          List of weekdays, not empty. These days are used in task duration
          computation
        items:
          $ref: '#/definitions/WeekDay'
      dateFormat:
        type: string
        description: 'Date format: dd/MM/yyyy or MM/dd/yyyy'
      firstDayOfWeek:
        $ref: '#/definitions/WeekDay'
      customFields:
        type: array
        description: List of custom fields accessible for requesting user in the account
        items:
          $ref: '#/definitions/CustomFieldInfo'
      name:
        type: string
        description: Name of account
      recycleBinId:
        $ref: '#/definitions/FolderId'
      rootFolderId:
        $ref: '#/definitions/FolderId'
      id:
        $ref: '#/definitions/AccountId'
      subscription:
        $ref: '#/definitions/AccountSubscription'
      joinedDate:
        type: string
        description: Date when the user has joined the account
  FolderColor:
    type: string
    enum:
      - Indigo4
      - Gray3
      - Indigo2
      - Indigo3
      - Gray2
      - Gray1
      - Yellow1
      - Yellow2
      - Yellow3
      - Blue1
      - Yellow4
      - Blue2
      - Green4
      - Blue3
      - Green3
      - Blue4
      - Green2
      - Green1
      - Orange4
      - Orange3
      - Orange2
      - Orange1
      - Person
      - Purple1
      - Purple2
      - Purple3
      - Pink1
      - Red3
      - Pink2
      - Red4
      - Pink3
      - Red1
      - Pink4
      - Red2
      - Purple4
      - DarkBlue1
      - DarkBlue3
      - DarkBlue2
      - DarkBlue4
      - YellowGreen4
      - YellowGreen3
      - YellowGreen2
      - YellowGreen1
      - Turquoise3
      - Turquoise4
      - Turquoise1
      - Turquoise2
      - Indigo1
      - DarkCyan2
      - None
      - DarkCyan1
      - DarkCyan4
      - DarkCyan3
  CustomStatus:
    required:
      - standardName
      - standard
      - id
      - name
      - group
      - hidden
    type: object
    properties:
      standard:
        type: boolean
        description: Defines default custom status (ignored in requests)
      standardName:
        type: boolean
        description: Whether status name is default or not
      color:
        $ref: '#/definitions/StatusColor'
      hidden:
        type: boolean
        description: Custom status is hidden
      name:
        type: string
        description: Name (128 symbols max)
      id:
        $ref: '#/definitions/CustomStatusId'
      group:
        $ref: '#/definitions/TaskStatus'
    description: |-
      ID and group cannot be set simultaneously in request parameter,
      but ID is required for update, and group is required for insert
  ResponseKind:
    type: string
    enum:
      - accounts
      - users
      - contacts
      - eDiscoveryReport
      - folders
      - folderTree
      - tasks
      - taskIds
      - timelogs
      - timelogCategories
      - timelogLockPeriods
      - timetrackerTimers
      - comments
      - attachments
      - url
      - version
      - dataExport
      - dataExportSchema
      - auditLog
      - accessRoles
      - stream
      - changes
      - posts
      - mailSettings
      - integrationInfo
      - gmailIntegrationSettings
      - workTypesForIntegrations
      - ids
      - backups
      - domains
      - dependencies
      - workflows
      - workschedules
      - workscheduleExclusions
      - workscheduleUserExclusions
      - customfields
      - customfieldIds
      - customstatuses
      - invitations
      - notifications
      - jobroles
      - placeholders
      - groups
      - session
      - dashboards
      - widgets
      - taskCreationSettings
      - colors
      - experiments
      - topics
      - topicComments
      - webhooks
      - reviews
      - boards
      - textSearch
      - chatChannels
      - chatMessages
      - forms
      - requestForms
      - request
      - report
      - platformWidgets
      - platformWidgetInstances
      - spaces
      - pdf
      - customerSatisfaction
      - asyncJob
      - approvals
      - highlights
      - highlightsList
      - highlightsSettings
      - highlightsCard
      - timesheet
      - timesheetSubmissionRule
      - mobileFeatures
      - mobileSettings
      - folderBlueprintTree
      - taskBlueprintTree
      - feedback
      - timeline_snapshot
      - contactIds
      - bookings
      - integrateThreshold
      - hourlyRatesProvision
      - hourlyRates
      - projectTeamMembers
      - contactsHistory
      - tasksHistory
      - foldersHistory
      - activityDigest
      - workItemTemplates
      - workTemplates
      - workItemMetadata
      - workItem
      - customItemTypes
      - verificationCode
      - views
      - listView
      - tableView
      - userTypes
      - reactions
      - externalRequesters
      - rollups
  DataExportStatus:
    type: string
    enum:
      - Scheduled
      - Failed
      - Completed
      - InProgress
      - Cancelled
  TaskEffort:
    required:
      - mode
    type: object
    properties:
      dailyAllocationPercentage:
        type: number
        description: Allocation in percentages per day, for effort daily mode
      mode:
        $ref: '#/definitions/EffortMode'
      allocatedEffort:
        type: number
        description: Allocated Effort in minutes
      totalEffort:
        type: number
        description: Total Effort in minutes
      responsibleAllocation:
        type: array
        description: Responsible allocations by day
        items:
          $ref: '#/definitions/ResponsibleAllocation'
  CustomFieldApplicableEntityType:
    type: string
    enum:
      - User
      - WorkItem
  CustomFieldId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  AuditLogOperation:
    type: string
    enum:
      - SecondFactorEnabled
      - CustomFieldRemoved
      - CalendarExternalLinksActivated
      - TaskDuplication
      - GanttSnapshotDeleted
      - CalendarExternalLinkDeleted
      - TaskRestored
      - CalendarExternalLinksDeactivated
      - PowerBIPublicLinkDeleted
      - ApprovalCanceled
      - RequestFormCreated
      - SamlClearPasswordForSamlUsers
      - OneTimePasswordUsed
      - AnalyzeWidgetPublicLinkCreated
      - TaskErased
      - InvitationPolicyChanged
      - CalendarExternalLinkCreated
      - UserTaskGroupRolesChanged
      - UserJoinedSpace
      - SamlSSOSettingsChanged
      - UserFailLogin
      - SamlSSODisabled
      - AdminMailSettingsChanged
      - CustomFieldRemovedFromFolder
      - UserLoggedIn
      - UserRoleChanged
      - CustomFieldAddedToFolder
      - UserTypeModified
      - AccessCodeAccepted
      - PublicLinkExpirationChanged
      - UserLogout
      - PowerBIPublicLinkCreated
      - GuestReviewerRevoked
      - ApprovedIpRangesOrSubnetsChanged
      - TaskScheduleChanged
      - CustomFieldRestored
      - AccountDeleted
      - UserAdminPermissionsChanged
      - AttachDeleted
      - SpaceDeleted
      - AuditReportCreated
      - UserTypeCreated
      - ExcelExportCreated
      - AdminLoggedInAsUser
      - WorkflowCreated
      - TaskUnsharedFromAuthor
      - AccessAuditReportCsvExport
      - AttachMarkAsFinal
      - OneTimePasswordStatusSwitched
      - ApproverAdded
      - UserLeftSpace
      - TaskUnarchived
      - ApprovalDescriptionChanged
      - GroupParentRemoved
      - GuestReviewAccountSettingsChanged
      - WorkflowDeleted
      - PasswordPolicyModified
      - GroupInviteeAdded
      - UserRestored
      - ApprovalDueDateChanged
      - AnalyzeWidgetPublicLinkDeleted
      - SpaceArchivedUnarchived
      - TaskStatusChanged
      - TaskCommentChanged
      - AccessRoleDeleted
      - TaskUnassigned
      - AnalyzePublicLinkCreated
      - GuestReviewRejected
      - TaskUnshared
      - PasswordChanged
      - RequestFormDeleted
      - AttemptDownloadInfectedAttach
      - InvitationSend
      - AccessRoleModified
      - SpaceCreated
      - ApprovedDomainsChanged
      - TimesheetStatusChanged
      - TimelogLocked
      - UserRevokeAdmin
      - RecycleBinErased
      - ApproverRemoved
      - UserDeleted
      - GanttSnapshotCreated
      - GroupMemberRemoved
      - UserProfileUpdated
      - SecondFactorUsageReportCreated
      - SecondFactorDisabled
      - AttachViewed
      - AccessRoleCreated
      - GroupMemberAdded
      - AccountDataExportRequested
      - SamlSSOMetadataChanged
      - GroupRenamed
      - PublicLinkCreated
      - TaskShared
      - AccountModified
      - PublicLinkPasswordRequested
      - WorkflowModified
      - PublicLinkDeleted
      - AccessCodeDeclined
      - AnalyzeWidgetPublicLinkAccessed
      - ApprovalCreated
      - Oauth2AccessRevoked
      - TaskParentRemoved
      - AntivirusDeletedInfectedAttach
      - RequestFormModified
      - GroupInviteeRemoved
      - GuestReviewerInvited
      - TaskArchived
      - AccountBackupCreated
      - FeedCreated
      - AccessCodeGenerated
      - UserDeactivated
      - AttachCopied
      - GroupParentAdded
      - GuestReviewerChanged
      - TimelogUnlocked
      - TaskCreated
      - OneTimePasswordRevoked
      - ApprovalFinished
      - TaskAssigned
      - OneTimePasswordCreated
      - GroupCreated
      - TimesheetCreated
      - UsersAndGroupsExported
      - AttachMoved
      - CustomFieldCreated
      - AutomatedIntegrationsExecution
      - PowerBIPublicLinkAccessed
      - AttachUnmarkAsFinal
      - AnalyzePublicLinkAccessed
      - GroupDeleted
      - CustomFieldModified
      - TaskCommentDeleted
      - AnalyzePublicLinkDeleted
      - UserTypeDeleted
      - Oauth2AccessGranted
      - UserGrantAdmin
      - PublicLinksAccountSettingsChanged
      - TaskDeleted
      - InvitationAccepted
      - AccountDataExportGenerated
      - SamlSSOEnabled
      - PublicLinkPasswordChanged
      - TaskParentAdded
      - ApprovalDecisionMade
      - GuestReviewAccepted
      - UserCustomFieldValueChanged
      - UserActivated
      - AttachUploaded
      - AttachDownloaded
  AccountSubscriptionType:
    type: string
    enum:
      - CreativeBusiness
      - CreativeEnterprise
      - Enterprise
      - Premium
      - Free
      - Business
  DataExportOperation:
    type: object
    properties:
      resources:
        type: array
        description: List of exported resources
        items:
          $ref: '#/definitions/DataExportResource'
      id:
        $ref: '#/definitions/DataExportId'
      completedDate:
        type: string
        description: The date when data export was finished
      status:
        $ref: '#/definitions/DataExportStatus'
  WorkflowId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  ApprovalStatus:
    type: string
    enum:
      - Draft
      - Approved
      - Rejected
      - Cancelled
      - Pending
  WorkScheduleType:
    type: string
    enum:
      - Custom
      - Default
  CustomFieldSettings:
    required:
      - readOnly
    type: object
    properties:
      optionColorsEnabled:
        type: boolean
        description: >-
          Is colors for options enabled (only for DropDown and MultipleSelect
          type). Use parameter 'options' to specify colors
      linkToDatabaseInfo:
        $ref: '#/definitions/CustomFieldLinkToDatabaseField'
      timezone:
        type: string
        description: Timezone Id, e.g 'America/New_York' (only for Date type)
      values:
        type: array
        description: >-
          Dropdown values without colors (only for DropDown and MultipleSelect
          type)
        items:
          type: string
      aggregation:
        $ref: '#/definitions/CustomFieldAggregationType'
      readOnly:
        type: boolean
        description: Is field value read only
      allowOtherValues:
        type: boolean
        description: Allow users to input other values (only for DropDown type)
      useThousandsSeparator:
        type: boolean
        description: Use thousands separator (only for Numeric type)
      decimalPlaces:
        type: number
        description: Decimal places (only for Numeric, Percentage and Currency types)
      options:
        type: array
        description: >
          Dropdown options with colors (only for DropDown and MultipleSelect
          type). Array of objects:

          {"value": "string", "color": "enum: Brown, Red, Purple, Indigo,
          DarkBlue, Blue, Turquoise, DarkCyan, Green, YellowGreen, Yellow,
          Orange, Gray, DarkRed"}
        items:
          $ref: '#/definitions/CustomFieldDropdownOption'
      currency:
        $ref: '#/definitions/CustomFieldCurrency'
      allowTime:
        type: boolean
        description: Allow users to input time (only for Date type)
      mirrorInfo:
        $ref: '#/definitions/CustomFieldMirrorField'
      applicableEntityTypes:
        type: array
        description: Applicable entity types
        items:
          $ref: '#/definitions/CustomFieldApplicableEntityType'
      contacts:
        type: array
        description: Allowed users or invitations (only for Users type)
        items:
          $ref: '#/definitions/UserId'
      inheritanceType:
        $ref: '#/definitions/CustomFieldInheritanceType'
  InvitationStatus:
    type: string
    enum:
      - Declined
      - Cancelled
      - Pending
      - Accepted
  CustomStatusInput:
    required:
      - id
      - name
      - group
      - hidden
    type: object
    properties:
      color:
        $ref: '#/definitions/StatusColor'
      hidden:
        type: boolean
        description: Custom status is hidden
      name:
        type: string
        description: Name (128 symbols max)
      id:
        $ref: '#/definitions/CustomStatusId'
      group:
        $ref: '#/definitions/TaskStatus'
    description: |-
      ID and group cannot be set simultaneously in request parameter,
      but ID is required for update, and group is required for insert
  UserScheduleExclusionId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  AsyncJobType:
    type: string
    enum:
      - TaskBlueprintLaunch
      - SubmitRequestForm
      - CopyFolder
      - FolderBlueprintLaunch
  AccessRoleId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  ApprovalType:
    type: string
    enum:
      - FilesOnly
      - Regular
  Approval:
    type: object
    properties:
      dueDate:
        type: string
        description: Due date, if exists
      description:
        type: string
        description: Description
      finished:
        type: boolean
        description: Is approval finished
      updatedDate:
        type: string
        description: Update date
      authorId:
        $ref: '#/definitions/UserId'
      title:
        type: string
        description: >-
          Title. Empty by default, set via workflow automation or by user on the
          portal
      type:
        $ref: '#/definitions/ApprovalType'
      autoFinishOnReject:
        type: boolean
        description: >-
          Is approval would be finished automatically on reaching Rejected
          status
      folderId:
        $ref: '#/definitions/FolderId'
      finisherId:
        $ref: '#/definitions/UserId'
      autoFinishOnApprove:
        type: boolean
        description: >-
          Is approval would be finished automatically on reaching Approved
          status
      decisions:
        type: array
        description: Approvers and their decisions
        items:
          $ref: '#/definitions/ApprovalDecision'
      attachmentIds:
        type: array
        description: ID of origin version attachments in review
        items:
          $ref: '#/definitions/AttachmentId'
      id:
        $ref: '#/definitions/ApprovalId'
      taskId:
        $ref: '#/definitions/TaskId'
      status:
        $ref: '#/definitions/ApprovalStatus'
  CopyFolderAsyncResult:
    type: object
    properties:
      folderId:
        type: string
    description: Async copy folder result
  BudgetRateProvision:
    required:
      - contact
      - rateType
      - rateSource
    type: object
    properties:
      rateValue:
        type: number
        description: >-
          Rate value is displayed to 2 decimal places. More digits will be
          rounded arithmetically to 2 decimal places. No need to specify rate
          value if rate source is "job role"
      rateType:
        $ref: '#/definitions/BudgetRateType'
      contact:
        $ref: '#/definitions/UserId'
      rateSource:
        $ref: '#/definitions/BudgetRateSource'
  RollupSettings:
    type: object
    properties:
      itemId:
        $ref: '#/definitions/TaskId'
      rollupSettings:
        type: array
        description: Rollup settings for fields
        items:
          $ref: '#/definitions/FieldRollupSettings'
  CustomFieldCurrency:
    type: string
    enum:
      - CHF
      - ARS
      - MXN
      - QAR
      - SAR
      - CLP
      - ZAR
      - INR
      - VND
      - THB
      - CNY
      - AUD
      - ILS
      - KRW
      - JPY
      - PLN
      - GBP
      - IDR
      - HUF
      - AMD
      - PHP
      - BYR
      - TRY
      - BWP
      - RUB
      - AED
      - HKD
      - TWD
      - EUR
      - COP
      - DKK
      - USD
      - CAD
      - MYR
      - NOK
      - RON
      - SGD
      - CZK
      - AZN
      - PEN
      - SEK
      - NZD
      - BRL
      - UAH
  Space:
    type: object
    properties:
      accessType:
        $ref: '#/definitions/SpaceAccessType'
      archived:
        type: boolean
        description: Space is archived
      defaultTaskWorkflowId:
        $ref: '#/definitions/WorkflowId'
      guestRoleId:
        $ref: '#/definitions/AccessRoleId'
      avatarUrl:
        type: string
        description: Avatar URL
      members:
        type: array
        description: Space members
        items:
          $ref: '#/definitions/SpaceMember'
      description:
        type: string
        description: Description
      suggestedProjectWorkflowIds:
        type: array
        description: Suggested project workflows IDs for a space.
        items:
          $ref: '#/definitions/WorkflowId'
      id:
        $ref: '#/definitions/SpaceId'
      suggestedTaskWorkflowIds:
        type: array
        description: Suggested task workflows IDs for a space
        items:
          $ref: '#/definitions/WorkflowId'
      title:
        type: string
        description: Title
      defaultProjectWorkflowId:
        $ref: '#/definitions/WorkflowId'
  AuditLogId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  FolderProjectCreate:
    type: object
    properties:
      ownerIds:
        type: array
        description: List of project owner IDs
        items:
          $ref: '#/definitions/UserId'
      endDate:
        type: string
        description: Project end date
      contractType:
        $ref: '#/definitions/ContractType'
      customStatusId:
        type: string
        description: >-
          Project custom status ID. Use this parameter if status value is not
          one of specified above
      startDate:
        type: string
        description: Project start date
      status:
        $ref: '#/definitions/ProjectStatus'
      budget:
        type: number
        description: Budget
  Workflow:
    type: object
    properties:
      standard:
        type: boolean
        description: Defines default workflow
      hidden:
        type: boolean
        description: Workflow is hidden
      customStatuses:
        type: array
        description: Custom statuses
        items:
          $ref: '#/definitions/CustomStatus'
      name:
        type: string
        description: Name (128 symbols max)
      id:
        $ref: '#/definitions/WorkflowId'
  Booking:
    type: object
    properties:
      responsiblePlaceholderId:
        $ref: '#/definitions/PlaceholderId'
      bookingDates:
        $ref: '#/definitions/BookingDates'
      responsibleId:
        $ref: '#/definitions/UserId'
      id:
        $ref: '#/definitions/BookingId'
      effortAllocation:
        $ref: '#/definitions/BookingEffort'
      title:
        type: string
        description: Title
      folderId:
        type: string
        description: Folder ID
  WorkWeek:
    required:
      - workDays
    type: object
    properties:
      workDays:
        type: array
        description: List of work days
        items:
          $ref: '#/definitions/WeekDay'
      capacityMinutes:
        type: number
        description: Custom capacity in minutes
  FolderId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  Dependency:
    type: object
    properties:
      relationType:
        $ref: '#/definitions/DependencyRelationType'
      successorId:
        $ref: '#/definitions/TaskId'
      lagTime:
        type: number
        description: >-
          Always in minutes, positive numbers are lag time and negative numbers
          are lead time
      id:
        $ref: '#/definitions/DependencyId'
      predecessorId:
        $ref: '#/definitions/TaskId'
  EDiscoveryScope:
    type: string
    enum:
      - task
      - folder
      - attachment
      - project
      - space
  BookingEffort:
    required:
      - mode
    type: object
    properties:
      mode:
        $ref: '#/definitions/EffortMode'
      totalEffort:
        type: number
        description: Total Effort in minutes
      responsibleAllocation:
        type: array
        description: Responsible allocations by day
        items:
          $ref: '#/definitions/ResponsibleAllocation'
  CustomFieldAggregationType:
    type: string
    enum:
      - Average
      - Sum
      - None
  AsyncJobResult: {}
  JobRole:
    type: object
    properties:
      isDeleted:
        type: boolean
        description: Job Role is deleted
      avatarUrl:
        type: string
        description: Avatar URL
      id:
        $ref: '#/definitions/JobRoleId'
      shortTitle:
        type: string
        description: Short title
      title:
        type: string
        description: Title
  InstantRange:
    type: object
    properties:
      start:
        type: string
        description: Range start
      end:
        type: string
        description: Range end
  DependencyId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  IdsType:
    type: string
    enum:
      - ApiV2Task
      - ApiV2Attachment
      - ApiV2Comment
      - ApiV2Folder
      - ApiV2Timelog
      - ApiV2User
      - ApiV2Account
      - ApiV2RequestForm
  SpaceAccessType:
    type: string
    enum:
      - Locked
      - Personal
      - Private
      - Public
  CustomFieldSharing:
    type: object
    properties:
      readerIds:
        type: array
        description: >
          Users who can see the field.<br>

          <ul>

          <li>null – everyone can read values</li>

          <li>empty – available for space custom fields only. When readerIds is
          empty, spaceReaders must be non-null. It means that read access is
          granted only via space membership (spaceReaders)</li>

          </ul>
        items:
          $ref: '#/definitions/UserId'
      spaceReaders:
        $ref: '#/definitions/CustomFieldSharingSpaceMembership'
      spaceWriters:
        $ref: '#/definitions/CustomFieldSharingSpaceMembership'
      writerIds:
        type: array
        description: >
          Users who can edit field values.<br>

          <ul>

          <li>null – everyone can edit values. Allowed only when readerIds ==
          null</li>

          <li>empty – if spaceWriters is null, then nobody can edit values.
          Otherwise, write access is granted only via space membership
          (spaceWriters)</li>

          </ul>

          <br>

          Various system actions (request form submission, automation action...)
          are not affected by this setting
        items:
          $ref: '#/definitions/UserId'
  TaskBlueprint:
    type: object
    properties:
      childIds:
        type: array
        description: Child Blueprint IDs
        items:
          $ref: '#/definitions/TaskBlueprintId'
      scope:
        $ref: '#/definitions/BlueprintTreeScope'
      id:
        $ref: '#/definitions/TaskBlueprintId'
      title:
        type: string
        description: Title
  Apiv3Version:
    type: object
    properties:
      major:
        type: number
        description: Major version number
      minor:
        type: number
        description: Minor version number
  UserType:
    type: string
    enum:
      - Group
      - Invitation
      - Asset
      - Person
      - Robot
  ApprovalDecision:
    required:
      - approverId
      - comment
      - status
      - updatedDate
    type: object
    properties:
      approverId:
        $ref: '#/definitions/UserId'
      comment:
        type: string
        description: comment
      updatedDate:
        type: string
        description: update date
      status:
        $ref: '#/definitions/ApprovalDecisionStatus'
  Group:
    type: object
    properties:
      accountId:
        $ref: '#/definitions/AccountId'
      metadata:
        type: array
        description: List of group metadata entries
        items:
          $ref: '#/definitions/Metadata'
      childIds:
        type: array
        description: List of child group IDs
        items:
          $ref: '#/definitions/UserId'
      avatarUrl:
        type: string
        description: Avatar URL
      parentIds:
        type: array
        description: List of parent group IDs
        items:
          $ref: '#/definitions/UserId'
      myTeam:
        type: boolean
        description: Field is present and set to true for My Team (default) group
      id:
        $ref: '#/definitions/UserId'
      title:
        type: string
        description: Group title
      memberIds:
        type: array
        description: List of group members user IDs
        items:
          $ref: '#/definitions/UserId'
  Placeholder:
    type: object
    properties:
      deleted:
        type: boolean
        description: True if Placeholder is deleted, false otherwise
      avatarUrl:
        type: string
        description: Avatar URL
      jobRoleId:
        $ref: '#/definitions/JobRoleId'
      id:
        $ref: '#/definitions/PlaceholderId'
      shortTitle:
        type: string
        description: Short title
      title:
        type: string
        description: Title
  TaskId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  CustomFieldDescription:
    type: object
    properties:
      accountId:
        $ref: '#/definitions/AccountId'
      spaceId:
        $ref: '#/definitions/SpaceId'
      settings:
        $ref: '#/definitions/CustomFieldSettings'
      sharedIds:
        type: array
        description: >-
          Users with whom the custom field is shared. Field is obsolete, use
          'sharing' to get more relevant access settings
        items:
          $ref: '#/definitions/UserId'
      id:
        $ref: '#/definitions/CustomFieldId'
      title:
        type: string
        description: Custom field title
      type:
        $ref: '#/definitions/CustomFieldType'
      sharing:
        $ref: '#/definitions/CustomFieldSharing'
  FieldRollupSettings:
    required:
      - fieldId
      - system
      - isEnabled
      - canToggle
    type: object
    properties:
      system:
        type: boolean
        description: System field
      isEnabled:
        type: boolean
        description: Rollup state for field
      canToggle:
        type: boolean
        description: Whether the rollup can be toggled for field
      fieldId:
        type: string
        description: >
          Id of field: custom field or one of system fields: StartDate, DueDate,
          Effort, BookedEffort, PlannedFees, ActualFees, PlannedCost,
          ActualCost, TimeSpent
  Metadata:
    required:
      - key
      - value
    type: object
    properties:
      value:
        type: string
        description: >-
          Value should be less than 1000 symbols, compatible with JSON string.
          Use JSON 'null' in order to remove metadata entry
      key:
        type: string
        description: >-
          Key should be less than 50 symbols and match following regular
          expression ([A-Za-z0-9_-]+)
    description: Metadata entries are isolated on per-client (application) basis
  BudgetRateHistoryItem:
    required:
      - rateSource
      - rateValue
      - startDate
    type: object
    properties:
      rateValue:
        type: number
        description: Rate value is displayed to 2 decimal places
      endDate:
        type: string
        description: >-
          The date when the rate became no longer effective and change to
          another rate
      rateSource:
        $ref: '#/definitions/BudgetRateSource'
      startDate:
        type: string
        description: The date when the rate became effective
  AsyncJobId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  UserAvatarColor:
    type: string
    enum:
      - Purple1
      - Purple2
      - Blue1
      - Pink1
      - Pink2
      - Red1
      - Red2
      - Turquoise1
      - Turquoise2
      - Blue2
      - DarkBlue1
      - Green2
      - DarkBlue2
      - Green1
      - Yellow1
      - Yellow2
      - Orange2
      - DarkCyan2
      - Orange1
      - DarkCyan1
      - YellowGreen2
      - YellowGreen1
  Folder:
    type: object
    properties:
      color:
        $ref: '#/definitions/FolderColor'
      customItemTypeId:
        $ref: '#/definitions/EntityTypeId'
      childIds:
        type: array
        description: Child folder IDs
        items:
          $ref: '#/definitions/FolderId'
      scope:
        $ref: '#/definitions/TreeScope'
      project:
        $ref: '#/definitions/FolderProject'
      id:
        $ref: '#/definitions/FolderId'
      title:
        type: string
        description: Title
      space:
        type: boolean
        description: Is folder a space
  CustomFieldLinkToDatabaseMirrorField:
    required:
      - dataHubFieldId
      - customFieldId
    type: object
    properties:
      dataHubFieldId:
        type: string
        description: DataHub field identifier in DataHub Public API format
      customFieldId:
        type: string
        description: Custom field id of this mirror
  CustomFieldComparator:
    type: string
    enum:
      - IsEmpty
      - ContainsAny
      - NotInRange
      - LessOrEqualTo
      - StartsWith
      - ContainsAll
      - EqualTo
      - LessThan
      - GreaterOrEqualTo
      - IsNotEmpty
      - GreaterThan
      - InRange
      - Contains
      - EndsWith
  CustomFieldMirrorField:
    required:
      - dataHubFieldId
      - linkToDatabaseCustomFieldId
    type: object
    properties:
      dataHubFieldId:
        type: string
        description: DataHub field identifier in DataHub Public API format
      linkToDatabaseCustomFieldId:
        type: string
        description: Link to Database custom field id  of this mirror
  RescheduleMode:
    type: string
    enum:
      - Start
      - End
  ErrorType:
    type: string
    enum:
      - invalid_request
      - invalid_parameter
      - parameter_required
      - not_authorized
      - access_forbidden
      - not_allowed
      - resource_not_found
      - method_not_found
      - too_many_requests
      - rate_limit_exceeded
      - server_error
  DailyAllocation:
    required:
      - date
      - effortMinutes
    type: object
    properties:
      date:
        type: string
        description: Allocation date
      effortMinutes:
        type: number
        description: Effort in minutes
  BudgetRate:
    required:
      - rateSource
    type: object
    properties:
      rateValue:
        type: number
        description: >-
          Rate value is displayed to 2 decimal places. More digits will be
          rounded arithmetically to 2 decimal places. No need to specify rate
          value if rate source is "job role"
      rateScope:
        $ref: '#/definitions/BudgetRateScope'
      rateSource:
        $ref: '#/definitions/BudgetRateSource'
  TaskDates:
    type: object
    properties:
      duration:
        type: number
        description: >-
          Duration in minutes. Duration is present in Planned tasks and is
          optional for Backlog tasks.<br>

          When updating duration, ensure to re-submit the start and due dates,
          even if they are to stay the same. Otherwise, the dates will be
          cleared.<br>

          When present for Planned tasks and due date is not given, this field
          limit is [1, 1800000).<br>

          Note that 1 day in Wrike is equal to 8 hours, or 480 minutes.
      due:
        type: string
        description: >-
          Due date is present only in Planned and Milestone tasks. When setting
          this field alone, the task will default to a milestone.
      start:
        type: string
        description: >-
          Start date is present only in Planned tasks. Important: If setting a
          start date, always include either a due date or duration.
      workOnWeekends:
        type: boolean
        description: Weekends are included in task scheduling
      type:
        $ref: '#/definitions/TaskDatesType'
    description: |-
      Field values limits:
      duration - [0, 1800000)
      start & due - [1970-01-01T00:00:00, 2100-01-01T00:00:00)
  EntityTypeId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  TaskBlueprintId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  CustomFieldInheritanceType:
    type: string
    enum:
      - All
      - Tasks
      - Projects
      - Folders
  CustomFieldLinkToDatabaseField:
    required:
      - dataHubDatabaseId
      - allowMultipleEntries
    type: object
    properties:
      allowMultipleEntries:
        type: boolean
        description: Allow linkage of multiple records
      dataHubDatabaseId:
        type: string
        description: DataHub database identifier in DataHub Public API format
      mirrorFields:
        type: array
        description: Mirror fields associated with this link
        items:
          $ref: '#/definitions/CustomFieldLinkToDatabaseMirrorField'
  BudgetRateSource:
    type: string
    enum:
      - JobRole
      - User
  TimelogFinance:
    type: object
    properties:
      currency:
        type: string
        description: Currency
      actualFees:
        type: number
        description: Actual fees
      actualCost:
        type: number
        description: Actual cost
  CustomFieldInfo:
    required:
      - id
      - accountId
      - title
      - type
      - sharedIds
      - sharing
    type: object
    properties:
      accountId:
        $ref: '#/definitions/AccountId'
      spaceId:
        $ref: '#/definitions/SpaceId'
      settings:
        $ref: '#/definitions/CustomFieldSettings'
      sharedIds:
        type: array
        description: >-
          Users with whom the custom field is shared. Field is obsolete, use
          'sharing' to get more relevant access settings
        items:
          $ref: '#/definitions/UserId'
      id:
        $ref: '#/definitions/CustomFieldId'
      title:
        type: string
        description: Custom field title
      type:
        $ref: '#/definitions/CustomFieldType'
      sharing:
        $ref: '#/definitions/CustomFieldSharing'
  TaskDatesType:
    type: string
    enum:
      - Milestone
      - Backlog
      - Planned
  FolderBlueprintId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  DataExportForeignKeySchema:
    required:
      - tableId
      - columnId
    type: object
    properties:
      columnId:
        type: string
        description: Foreign column id
      tableId:
        type: string
        description: Foreign table id
  TaskFinance:
    type: object
    properties:
      plannedCost:
        type: number
        description: Planned cost
      plannedFees:
        type: number
        description: Planned fees
      currency:
        type: string
        description: Currency
      actualFees:
        type: number
        description: Actual fees
      actualCost:
        type: number
        description: Actual cost
  EffortMode:
    type: string
    enum:
      - Basic
      - Flexible
      - FullTime
      - None
  SpaceMember:
    required:
      - id
      - accessRoleId
      - isManager
    type: object
    properties:
      accessRoleId:
        $ref: '#/definitions/AccessRoleId'
      isManager:
        type: boolean
        description: User is Space manager
      id:
        $ref: '#/definitions/UserId'
  CustomFieldFilter:
    required:
      - id
    type: object
    properties:
      comparator:
        $ref: '#/definitions/CustomFieldComparator'
      minValue:
        type: string
        description: Custom field min value
      maxValue:
        type: string
        description: Custom field max value
      values:
        type: array
        description: Custom field possible values
        items:
          type: string
      id:
        $ref: '#/definitions/CustomFieldId'
      value:
        type: string
        description: Custom field value
  TimesheetApprovalStatus:
    type: string
    enum:
      - NotSubmitted
      - Approved
      - Rejected
      - Pending
  ApprovalId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  FolderProjectUpdate:
    type: object
    properties:
      ownersRemove:
        type: array
        description: List of userIds to be removed from owners
        items:
          $ref: '#/definitions/UserId'
      endDate:
        type: string
        description: Project end date (null value to remove)
      contractType:
        $ref: '#/definitions/ContractType'
      customStatusId:
        type: string
        description: >-
          Project custom status ID. Use this parameter if status value is not
          one of specified above
      ownersAdd:
        type: array
        description: List of userIds to be added as owners
        items:
          $ref: '#/definitions/UserId'
      startDate:
        type: string
        description: Project start date (null value to remove)
      status:
        $ref: '#/definitions/ProjectStatus'
      budget:
        type: number
        description: Budget
  TaskStatus:
    type: string
    enum:
      - Active
      - Deferred
      - Completed
      - Cancelled
  ResponsibleAllocation:
    required:
      - dailyAllocation
    type: object
    properties:
      placeholderId:
        $ref: '#/definitions/PlaceholderId'
      dailyAllocation:
        type: array
        description: Daily allocations
        items:
          $ref: '#/definitions/DailyAllocation'
      userId:
        $ref: '#/definitions/UserId'
  ErrorResponse:
    type: object
    properties:
      errorDescription:
        type: string
      error:
        $ref: '#/definitions/ErrorType'
  ProjectStatus:
    type: string
    enum:
      - Red
      - OnHold
      - Yellow
      - Completed
      - Custom
      - Cancelled
      - Green
  CustomFieldSharingSpaceMembership:
    type: string
    enum:
      - Admin
      - Member
  AccountSubscription:
    required:
      - type
      - suspended
      - paid
      - userLimit
    type: object
    properties:
      paid:
        type: boolean
        description: Subscription is paid (available only to account admins)
      type:
        $ref: '#/definitions/AccountSubscriptionType'
      userLimit:
        type: number
        description: Limit of subscription users (available only to account admins)
      suspended:
        type: boolean
        description: Account is suspended
  LocalDateTimeRange:
    type: object
    properties:
      equal:
        type: string
        description: Date exact match value
      start:
        type: string
        description: Range start
      end:
        type: string
        description: Range end
  FolderChangeHistory:
    type: object
    properties:
      project:
        $ref: '#/definitions/FolderProjectHistory'
      id:
        $ref: '#/definitions/FolderId'
  Task:
    type: object
    properties:
      metadata:
        type: array
        description: List of task metadata entries
        items:
          $ref: '#/definitions/Metadata'
      importance:
        $ref: '#/definitions/TaskImportance'
      customFields:
        type: array
        description: Custom fields
        items:
          $ref: '#/definitions/CustomField'
      followerIds:
        type: array
        description: List of user IDs, who follows task
        items:
          $ref: '#/definitions/UserId'
      parentIds:
        type: array
        description: List of task parent folder IDs
        items:
          $ref: '#/definitions/FolderId'
      description:
        type: string
        description: Description
      responsiblePlaceholderIds:
        type: array
        description: List of placeholder assignee Ids
        items:
          $ref: '#/definitions/PlaceholderId'
      updatedDate:
        type: string
        description: Updated date
      title:
        type: string
        description: Title, cannot be empty
      followedByMe:
        type: boolean
        description: Is a task followed by me
      billingType:
        $ref: '#/definitions/BillingType'
      scope:
        $ref: '#/definitions/TreeScope'
      id:
        $ref: '#/definitions/TaskId'
      effortAllocation:
        $ref: '#/definitions/TaskEffort'
      hasAttachments:
        type: boolean
        description: Has attachments
      subTaskIds:
        type: array
        description: List of subtask IDs
        items:
          $ref: '#/definitions/TaskId'
      recurrent:
        type: boolean
        description: Is a task recurrent
      authorIds:
        type: array
        description: List of author IDs (currently contains 1 element)
        items:
          $ref: '#/definitions/UserId'
      responsibleIds:
        type: array
        description: List of assignee user IDs
        items:
          $ref: '#/definitions/UserId'
      customItemTypeId:
        $ref: '#/definitions/EntityTypeId'
      sharedIds:
        type: array
        description: Users with whom the task is shared
        items:
          $ref: '#/definitions/UserId'
      dates:
        $ref: '#/definitions/TaskDates'
      superTaskIds:
        type: array
        description: List of super task IDs
        items:
          $ref: '#/definitions/TaskId'
      priority:
        type: string
        description: Ordering key that defines task order in tasklist
      completedDate:
        type: string
        description: Completed date
      superParentIds:
        type: array
        description: List of folder IDs inherited from parent task
        items:
          $ref: '#/definitions/FolderId'
      accountId:
        $ref: '#/definitions/AccountId'
      dependencyIds:
        type: array
        description: List of dependency IDs
        items:
          $ref: '#/definitions/DependencyId'
      createdDate:
        type: string
        description: Created date
      customStatusId:
        $ref: '#/definitions/CustomStatusId'
      attachmentCount:
        type: number
        description: Total count of task attachments
      permalink:
        type: string
        description: Link to open task in web workspace, if user has appropriate access
      briefDescription:
        type: string
        description: Brief description
      finance:
        $ref: '#/definitions/TaskFinance'
      status:
        $ref: '#/definitions/TaskStatus'
  AccountId:
    pattern: ^([A-Z0-9]){8}$
    type: string
  Attachment:
    type: object
    properties:
      currentAttachmentId:
        $ref: '#/definitions/AttachmentId'
      originVersionId:
        $ref: '#/definitions/AttachmentId'
      reviewIds:
        type: array
        description: Review IDs
        items:
          $ref: '#/definitions/ReviewId'
      previewUrl:
        type: string
        description: >-
          Link to download external attachment preview (present if preview is
          available)
      playlistUrl:
        type: string
        description: Link to video playlist
      authorId:
        $ref: '#/definitions/UserId'
      type:
        $ref: '#/definitions/AttachmentType'
      version:
        type: number
        description: Attachment version
      folderId:
        type: string
        description: ID of related folder. Only one of taskId/folderId fields is present
      url:
        type: string
        description: Link to download attachment
      createdDate:
        type: string
        description: Upload date
      size:
        type: number
        description: >-
          Size for Wrike Attachments. For external attachments, size is equal to
          -1
      name:
        type: string
        description: Attachment filename
      width:
        type: number
        description: Attachment width, if image
      commentId:
        type: string
        description: ID of related comment
      id:
        $ref: '#/definitions/AttachmentId'
      contentType:
        type: string
        description: Content type
      taskId:
        type: string
        description: ID of related task. Only one of taskId/folderId fields is present
      height:
        type: number
        description: Attachment height, if image
  CustomFieldDropdownOption:
    required:
      - value
    type: object
    properties:
      color:
        $ref: '#/definitions/DropdownOptionColor'
      value:
        type: string
        description: value
  AsyncJob:
    type: object
    properties:
      result:
        $ref: '#/definitions/AsyncJobResult'
      processedCount:
        type: number
        description: Processed count
      errorMessage:
        type: string
        description: Error message
      progressPercent:
        type: number
        description: Progress percents
      id:
        $ref: '#/definitions/AsyncJobId'
      totalCount:
        type: number
        description: Total count
      type:
        $ref: '#/definitions/AsyncJobType'
      status:
        $ref: '#/definitions/AsyncJobStatus'
  AuditLog:
    type: object
    properties:
      ipAddress:
        type: string
        description: IP address from which an operation was performed
      objectName:
        type: string
        description: Object name
      userEmail:
        type: string
        description: Operational user e-mail
      details:
        type: object
        additionalProperties:
          type: string
        properties: {}
      id:
        $ref: '#/definitions/AuditLogId'
      operation:
        $ref: '#/definitions/AuditLogOperation'
      userId:
        $ref: '#/definitions/UserId'
      objectId:
        type: string
        description: Object ID
      eventDate:
        type: string
        description: Date and time when operation was performed
      objectType:
        $ref: '#/definitions/AuditLogObjectType'
  BudgetRatesAggregated:
    type: object
    properties:
      billRate:
        $ref: '#/definitions/BudgetRate'
      costRate:
        $ref: '#/definitions/BudgetRate'
      rateSubjectId:
        $ref: '#/definitions/UserId'
      rateSubjectType:
        $ref: '#/definitions/BudgetRateSubjectType'
  CustomStatusId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  BookingId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  WorkItemMetadata:
    type: object
    properties:
      relatedType:
        $ref: '#/definitions/CustomItemTypeRelatedType'
      id:
        $ref: '#/definitions/TaskId'
  Apiv3Apiv2Id:
    type: object
    properties:
      id:
        type: string
        description: API v3 ID
      apiV2Id:
        type: string
        description: API v2 legacy ID
  WorkScheduleId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  AsyncJobStatus:
    type: string
    enum:
      - InQueue
      - Failed
      - Completed
      - InProgress
  BudgetRateSubjectType:
    type: string
    enum:
      - Placeholder
      - User
  TreeScope:
    type: string
    enum:
      - WsTask
      - RbRoot
      - RbFolder
      - WsFolder
      - WsRoot
      - RbTask
  ContactChangeHistory:
    type: object
    properties:
      costRateHistory:
        type: array
        description: Cost rate change history
        items:
          $ref: '#/definitions/BudgetRateHistoryItem'
      billRateHistory:
        type: array
        description: Bill rate change history
        items:
          $ref: '#/definitions/BudgetRateHistoryItem'
      id:
        $ref: '#/definitions/UserId'
  WorkWeekUpdate:
    required:
      - dayOfWeek
      - isWorkDay
    type: object
    properties:
      dayOfWeek:
        $ref: '#/definitions/WeekDay'
      isWorkDay:
        type: boolean
        description: Is it working day
  AccessRole:
    type: object
    properties:
      description:
        type: string
        description: Role description
      id:
        $ref: '#/definitions/AccessRoleId'
      title:
        type: string
        description: Role title
  ExternalRequesterId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  Invitation:
    type: object
    properties:
      userTypeId:
        type: string
        description: Invited User Type ID
      accountId:
        $ref: '#/definitions/AccountId'
      firstName:
        type: string
        description: First Name
      lastName:
        type: string
        description: LastName
      external:
        type: boolean
        description: Is user external
      inviterUserId:
        $ref: '#/definitions/UserId'
      role:
        $ref: '#/definitions/UserRole'
      id:
        $ref: '#/definitions/InvitationId'
      email:
        type: string
        description: Email
      status:
        $ref: '#/definitions/InvitationStatus'
      invitationDate:
        type: string
        description: Date when invitation was created
      resolvedDate:
        type: string
        description: Date when the invitation was resolved
  CustomFieldType:
    type: string
    enum:
      - Multiple
      - Percentage
      - Text
      - Duration
      - CalculatedNumeric
      - Date
      - CalculatedDate
      - Numeric
      - Contacts
      - Checkbox
      - Currency
      - DropDown
      - LinkToDatabase
  BookingDates:
    type: object
    properties:
      duration:
        type: number
        description: Duration in days
      workOnWeekends:
        type: boolean
        description: Weekends are included in booking scheduling
      finishDate:
        type: string
        description: Finish date
      startDate:
        type: string
        description: Start date
  UserScheduleException:
    type: object
    properties:
      fromDate:
        type: string
        description: ''
      isWorkDays:
        type: boolean
        description: True if this exception is for working days
      toDate:
        type: string
        description: ''
      exclusionType:
        $ref: '#/definitions/UserScheduleExclusionType'
      id:
        $ref: '#/definitions/UserScheduleExclusionId'
      userId:
        $ref: '#/definitions/UserId'
  BudgetRateScope:
    type: string
    enum:
      - Account
      - Project
  TaskImportance:
    type: string
    enum:
      - High
      - Low
      - Normal
  BudgetMetricHistoryItem:
    required:
      - value
      - startDate
    type: object
    properties:
      endDate:
        type: string
        description: Field's value for the selected end date
      value:
        type: number
        description: Field's value
      startDate:
        type: string
        description: Field's value for the selected start date
  WeekDay:
    type: string
    enum:
      - Thu
      - Tue
      - Wed
      - Sat
      - Fri
      - Sun
      - Mon
  DropdownOptionColor:
    type: string
    enum:
      - Brown
      - DarkCyan
      - Gray
      - Blue
      - DarkBlue
      - Orange
      - Red
      - YellowGreen
      - Purple
      - Yellow
      - Indigo
      - Turquoise
      - DarkRed
      - Green
  DataExportColumnSchema:
    required:
      - id
      - alias
      - dataType
    type: object
    properties:
      dataType:
        type: string
        description: Column data type
      alias:
        type: string
        description: Column alias
      id:
        type: string
        description: Column id
      foreignKey:
        $ref: '#/definitions/DataExportForeignKeySchema'
  CustomFieldScope:
    type: string
    enum:
      - Space
      - Account
  TimelogCategoryId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  TimesheetSubmissionRule:
    type: object
    properties:
      ruleType:
        $ref: '#/definitions/TimesheetSubmissionRuleType'
      workScheduleId:
        $ref: '#/definitions/WorkScheduleId'
      enabled:
        type: boolean
        description: Current state of timesheet submission rule
      frequency:
        $ref: '#/definitions/TimesheetSubmissionRuleFrequency'
  ContractType:
    type: string
    enum:
      - Billable
      - NonBillable
  WorkScheduleExclusionId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  PreviewSize:
    type: string
    enum:
      - w44
      - w300
      - w400
      - w100
      - h400
      - w200
      - full
  WorkScheduleExclusionType:
    type: string
    enum:
      - PublicHolidays
      - OtherEvent
      - AdditionalWorkDays
  InvitationId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  FolderProject:
    required:
      - ownerIds
      - status
    type: object
    properties:
      createdDate:
        type: string
        description: Project created date
      ownerIds:
        type: array
        description: List of project owner IDs
        items:
          $ref: '#/definitions/UserId'
      endDate:
        type: string
        description: Project end date
      contractType:
        $ref: '#/definitions/ContractType'
      customStatusId:
        $ref: '#/definitions/CustomStatusId'
      authorId:
        $ref: '#/definitions/UserId'
      startDate:
        type: string
        description: Project start date
      completedDate:
        type: string
        description: Project completed date
      finance:
        $ref: '#/definitions/FolderProjectFinance'
      status:
        $ref: '#/definitions/ProjectStatus'
  Rates:
    type: object
    properties:
      rateValue:
        type: number
        description: >-
          Rate value is displayed to 2 decimal places. More digits will be
          rounded arithmetically to 2 decimal places. No need to specify rate
          value if rate source is "job role"
      rateType:
        $ref: '#/definitions/BudgetRateType'
      contact:
        $ref: '#/definitions/UserId'
      rateSource:
        $ref: '#/definitions/BudgetRateSource'
  UserScheduleExclusionType:
    type: string
    enum:
      - VacationPTO
      - Overtime
      - OtherNonWorking
  DataExportId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  User:
    type: object
    properties:
      userTypeId:
        type: string
        description: User Type Id
      lastName:
        type: string
        description: Last name
      metadata:
        type: array
        description: >-
          List of contact metadata entries. Requesting user has read/write
          access to his own metadata, other entries are read-only
        items:
          $ref: '#/definitions/Metadata'
      avatarUrl:
        type: string
        description: Avatar URL
      timezone:
        type: string
        description: Timezone Id, e.g 'America/New_York'
      companyName:
        type: string
        description: User Company Name
      profiles:
        type: array
        description: List of user profiles in accounts accessible for requesting user
        items:
          $ref: '#/definitions/UserProfile'
      type:
        $ref: '#/definitions/UserType'
      locale:
        type: string
        description: Locale
      title:
        type: string
        description: User Title
      firstName:
        type: string
        description: First name
      deleted:
        type: boolean
        description: True if user is deleted, false otherwise
      phone:
        type: string
        description: User phone
      me:
        type: boolean
        description: Field is present and set to true only for requesting user
      myTeam:
        type: boolean
        description: Field is present and set to true for My Team (default) group
      location:
        type: string
        description: User location
      id:
        $ref: '#/definitions/UserId'
      memberIds:
        type: array
        description: List of group members contact IDs (field is present only for groups)
        items:
          $ref: '#/definitions/UserId'
      primaryEmail:
        type: string
        description: Primary Email
  UserProfile:
    required:
      - accountId
      - email
      - role
      - external
      - admin
      - owner
      - active
    type: object
    properties:
      owner:
        type: boolean
        description: Is user account owner
      accountId:
        $ref: '#/definitions/AccountId'
      external:
        type: boolean
        description: Is user external
      role:
        $ref: '#/definitions/UserRole'
      admin:
        type: boolean
        description: Is user account admin
      active:
        type: boolean
        description: Is user active in account
      email:
        type: string
        description: Email address associated with account
  CustomItemTypeRelatedType:
    type: string
    enum:
      - Project
      - Task
      - Folder
  TaskSortField:
    type: string
    enum:
      - Status
      - Importance
      - UpdatedDate
      - Priority
      - CreatedDate
      - Title
      - StartFinishInterval
      - DueDate
      - LastAccessDate
      - CompletedDate
  BudgetRateType:
    type: string
    enum:
      - Bill
      - Cost
  ModifyFieldRollupSettings:
    required:
      - fieldId
      - isEnabled
    type: object
    properties:
      isEnabled:
        type: boolean
        description: Enable rollup for field
      fieldId:
        type: string
        description: >
          Id of field: custom field or one of system fields: StartDate, DueDate,
          Effort, BookedEffort, PlannedFees, ActualFees, PlannedCost,
          ActualCost, TimeSpent
  StatusColor:
    type: string
    enum:
      - Brown
      - DarkCyan
      - Gray
      - Blue
      - DarkBlue
      - Orange
      - Red
      - YellowGreen
      - Purple
      - Yellow
      - Indigo
      - DarkRed
      - Turquoise
      - Green
  FolderProjectFinance:
    type: object
    properties:
      plannedCost:
        type: number
        description: Planned cost
      plannedFees:
        type: number
        description: Planned fees
      currency:
        type: string
        description: Currency
      actualFees:
        type: number
        description: Actual fees
      actualCost:
        type: number
        description: Actual cost
      budget:
        type: number
        description: Budget
  Timelog:
    type: object
    properties:
      approvalStatus:
        $ref: '#/definitions/TimesheetApprovalStatus'
      hours:
        type: number
        description: Hours tracked in timelog record, must be in [0..24] hours range
      createdDate:
        type: string
        description: Date of timelog was created
      billingType:
        $ref: '#/definitions/BillingType'
      trackedDate:
        type: string
        description: Date for which timelog was recorded
      comment:
        type: string
        description: Timelog record comment
      id:
        $ref: '#/definitions/TimelogId'
      updatedDate:
        type: string
        description: Date of timelog was updated
      userId:
        $ref: '#/definitions/UserId'
      taskId:
        $ref: '#/definitions/TaskId'
      categoryId:
        $ref: '#/definitions/TimelogCategoryId'
      finance:
        $ref: '#/definitions/TimelogFinance'
  CommentType:
    type: string
    enum:
      - Email
      - Regular
  DataExportTableSchema:
    type: object
    properties:
      columns:
        type: array
        description: List of exported columns
        items:
          $ref: '#/definitions/DataExportColumnSchema'
      alias:
        type: string
        description: Table alias
      id:
        type: string
        description: Table id
  TaskChangeHistory:
    type: object
    properties:
      plannedCost:
        type: array
        description: Planned cost change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      plannedFees:
        type: array
        description: Planned fees change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      id:
        $ref: '#/definitions/TaskId'
      actualFees:
        type: array
        description: Actual fees change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      actualCost:
        type: array
        description: Actual cost change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
  BlueprintTreeScope:
    type: string
    enum:
      - TaskBp
      - BpRoot
      - FolderBp
  GroupModify:
    required:
      - id
    type: object
    properties:
      addMembers:
        type: array
        description: Add specified users to group
        items:
          $ref: '#/definitions/UserId'
      removeMembers:
        type: array
        description: Remove specified users from group
        items:
          $ref: '#/definitions/UserId'
      id:
        $ref: '#/definitions/UserId'
  TimelogCategory:
    type: object
    properties:
      hidden:
        type: boolean
        description: Timelog category is hidden
      name:
        type: string
        description: Name of the timelog record
      id:
        $ref: '#/definitions/TimelogCategoryId'
      order:
        type: number
        description: Order number of the timelog category in category list
  TimesheetSubmissionRuleFrequency:
    type: string
    enum:
      - Week
      - Day
  TimesheetSubmissionRuleType:
    type: string
    enum:
      - Hard
      - Soft
  DataExportVersion:
    type: string
    enum:
      - V0
      - V1
      - V2
  BillingType:
    type: string
    enum:
      - Billable
      - NonBillable
  Comment:
    type: object
    properties:
      externalRequester:
        $ref: '#/definitions/ExternalRequester'
      createdDate:
        type: string
        description: Created date
      id:
        $ref: '#/definitions/CommentId'
      text:
        type: string
        description: Comment text
      updatedDate:
        type: string
        description: >-
          Deprecated because this field gets created date instead of updated
          date. Please use the createdDate field instead.
      authorId:
        $ref: '#/definitions/UserId'
      type:
        $ref: '#/definitions/CommentType'
      emailSubject:
        type: string
        description: The subject in case of email comment
      taskId:
        type: string
        description: ID of related task. Only one of taskId/folderId fields is present
      folderId:
        type: string
        description: ID of related folder. Only one of taskId/folderId fields is present
      direction:
        type: string
        description: The direction (Outgoing/Incoming) in case of email comment
  AttachmentUrl:
    type: object
    properties:
      playlistUrl:
        type: string
        description: URL to video playlist of attachment
      url:
        type: string
        description: URL by which attachment can be accessed
  AttachmentType:
    type: string
    enum:
      - Google
      - DAM
      - OneDrive
      - Wrike
      - External
      - Box
      - SharePoint
      - DropBox
  ExternalRequester:
    required:
      - id
      - firstName
      - email
    type: object
    properties:
      firstName:
        type: string
        description: The first name of the external requester
      lastName:
        type: string
        description: The last name of the external requester
      id:
        $ref: '#/definitions/ExternalRequesterId'
      email:
        type: string
        description: The email address of the external requester
  TimelogId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  DataExportResource:
    required:
      - name
      - url
    type: object
    properties:
      name:
        type: string
        description: Name of exported resource
      url:
        type: string
        description: Link to a file of exported resource
  JobRoleId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  SpaceId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  ColorsInfo:
    type: object
    properties:
      name:
        type: string
        description: Color name
      hex:
        type: string
        description: HEX code
  SortOrder:
    type: string
    enum:
      - Asc
      - Desc
  ApprovalDecisionStatus:
    type: string
    enum:
      - Approved
      - Rejected
      - Pending
  AttachmentId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  Avatar:
    required:
      - letters
      - color
    type: object
    properties:
      color:
        type: string
        description: Hex color code
      letters:
        type: string
        description: Group letters (2 symbols max)
  CommentId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  Contact:
    type: object
    properties:
      lastName:
        type: string
        description: Last name
      metadata:
        type: array
        description: >-
          List of contact metadata entries. Requesting user has read/write
          access to his own metadata, other entries are read-only
        items:
          $ref: '#/definitions/Metadata'
      avatarUrl:
        type: string
        description: Avatar URL
      timezone:
        type: string
        description: Timezone Id, e.g 'America/New_York'
      currentCostRate:
        $ref: '#/definitions/BudgetRate'
      customFields:
        type: array
        description: Custom fields
        items:
          $ref: '#/definitions/CustomField'
      companyName:
        type: string
        description: User Company Name
      profiles:
        type: array
        description: List of user profiles in accounts accessible for requesting user
        items:
          $ref: '#/definitions/UserProfile'
      type:
        $ref: '#/definitions/UserType'
      locale:
        type: string
        description: Locale
      title:
        type: string
        description: User Title
      firstName:
        type: string
        description: First name
      deleted:
        type: boolean
        description: True if user is deleted, false otherwise
      phone:
        type: string
        description: User phone
      currentBillRate:
        $ref: '#/definitions/BudgetRate'
      me:
        type: boolean
        description: Field is present and set to true only for requesting user
      myTeam:
        type: boolean
        description: Field is present and set to true for My Team (default) group
      jobRoleId:
        $ref: '#/definitions/JobRoleId'
      location:
        type: string
        description: User location
      workScheduleId:
        $ref: '#/definitions/WorkScheduleId'
      id:
        $ref: '#/definitions/UserId'
      memberIds:
        type: array
        description: List of group members contact IDs (field is present only for groups)
        items:
          $ref: '#/definitions/UserId'
      primaryEmail:
        type: string
        description: Primary Email
  WorkSchedule:
    type: object
    properties:
      scheduleType:
        $ref: '#/definitions/WorkScheduleType'
      workweek:
        type: array
        description: Work week
        items:
          $ref: '#/definitions/WorkWeek'
      userIds:
        type: array
        description: User ids assigned to schedule
        items:
          $ref: '#/definitions/UserId'
      id:
        $ref: '#/definitions/WorkScheduleId'
      title:
        type: string
        description: Title
  WorkScheduleException:
    type: object
    properties:
      fromDate:
        type: string
        description: ''
      isWorkDays:
        type: boolean
        description: True if this exception is for working days
      toDate:
        type: string
        description: ''
      exclusionType:
        $ref: '#/definitions/WorkScheduleExclusionType'
      id:
        $ref: '#/definitions/WorkScheduleExclusionId'
  PlaceholderId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  FolderProjectHistory:
    type: object
    properties:
      plannedCost:
        type: array
        description: Planned cost change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      plannedFees:
        type: array
        description: Planned fees change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      actualFees:
        type: array
        description: Actual fees change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      actualCost:
        type: array
        description: Actual cost change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
      budget:
        type: array
        description: Budget change history
        items:
          $ref: '#/definitions/BudgetMetricHistoryItem'
  UserId:
    pattern: ^([A-Z0-9]){8}$
    type: string
  UserRole:
    type: string
    enum:
      - User
      - Collaborator
  DependencyRelationType:
    type: string
    enum:
      - FinishToFinish
      - StartToStart
      - StartToFinish
      - FinishToStart
  CustomField:
    required:
      - id
      - value
    type: object
    properties:
      id:
        $ref: '#/definitions/CustomFieldId'
      value:
        type: string
        description: >-
          Custom field value. 4000 characters max. Should be valid string
          according to JSON RFC 8259. In particular, following characters must
          be escaped: quotation mark, reverse solidus, and the control
          characters (U+0000 through U+001F). Any character may be escaped, but
          unnecessarily escaped character can be implicitly translated to it's
          unescaped version. <br> In addition to RFC 8259 requirements, it is
          not recommended to use any of control characters in CF
          value.<br>Wrike's API forbids using U+0000 in every place and U+0011
          at the beginning of the CF value string.<br>The correct way for
          setting multiple values in the multiple select Custom fields is
          ?customFields=[{"id":"CustomFieldId","value":"[\"value1\",\"value2\"]"}]<br>The
          correct way for setting values in the people Custom fields is
          ?customFields=[{"id":"CustomFieldId","value":"UserId1, UserId2"}]<br>
          Note that if custom field values are passed to API as URI param of
          request, they must be URI encoded. Here are some examples:<br>"%5c" -
          reverse solidus (backslash)<br>"%5c%22" - quotation
          mark<br>"Vi%5Cu1ec7t" - unicode-escaped character in word "Việt"<br>
  ReviewId:
    pattern: ^([A-Z0-9]){16}$
    type: string
  AuditLogObjectType:
    type: string
    enum:
      - Account
      - Group
      - AnalyzeReportWidget
      - Task
      - User
      - WorkspaceSnapshot
      - CalendarExternalLink
      - Attachment
      - Folder
      - DataExport
      - PowerBIEntity
      - Space
      - Comment
      - RequestForm
      - AccessRole
      - Timesheet
      - Invitation
      - Workflow
      - AnalyzeReport
      - Oauth2Client
      - Project
      - PublicLink
      - UserRole
      - CustomField
      - UserType
  FolderBlueprint:
    type: object
    properties:
      childIds:
        type: array
        description: Child Blueprint IDs
        items:
          $ref: '#/definitions/FolderBlueprintId'
      scope:
        $ref: '#/definitions/BlueprintTreeScope'
      id:
        $ref: '#/definitions/FolderBlueprintId'
      title:
        type: string
        description: Title
  CustomItemType:
    type: object
    properties:
      spaceId:
        $ref: '#/definitions/SpaceId'
      relatedType:
        $ref: '#/definitions/CustomItemTypeRelatedType'
      customFieldIds:
        type: array
        description: Custom fields that are available
        items:
          $ref: '#/definitions/CustomFieldId'
      description:
        type: string
        description: Custom item type description
      id:
        $ref: '#/definitions/EntityTypeId'
      title:
        type: string
        description: Work type Title
  LocalDateRange:
    type: object
    properties:
      equal:
        type: string
        description: Date exact match value
      start:
        type: string
        description: Range start
      end:
        type: string
        description: Range end
securityDefinitions:
  api_key:
    type: apiKey
    in: header
    name: Authorization
x-components: {}
