Bridgit Project Tasks API

The Project Tasks API from Bridgit — 8 operation(s) for project tasks.

Business capability
Project Management BC-900.30

Operations 11

POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks Bulk add tasks for the given account's project #
PUT /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks Bulk update tasks for the given account's project #
POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id}/roles Add a role to a task for the given account's project #
POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id}/roles/bulk Bulk add roles to a task for the given account's project #
PATCH /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id} Update a task role by ID in the given account's project #
DELETE /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id} Remove task role by ID in the given account's project #
POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id}/allocations Allocates a person to a task role on the given account and project #
DELETE /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id}/allocations Removes a person's allocation on a task role on the given account and project #
POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/allocations/bulk Bulk allocates people to task roles on the given account and project task #
DELETE /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id} Remove task by ID in the given account's project #
POST /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/by-templates Add tasks and roles for the given account's project using task template… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bridgit-project-tasks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bridgit-project-tasks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bench Project Tasks API
  description: 'Versioning


    The API is currently at version 1.0.'
  version: '1.0'
servers:
- url: https://bench.gobridgit.com
  description: Bridgit Bench production
security:
- {}
tags:
- name: Project Tasks
paths:
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks:
    post:
      tags:
      - Project Tasks
      summary: Bulk add tasks for the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read'
      operationId: ProjectTasks_Add
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID the task belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: The request information for the task creation
        content:
          application/json-patch+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/BaseTaskRequest'
          application/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/BaseTaskRequest'
          text/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/BaseTaskRequest'
          application/*+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/BaseTaskRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
    put:
      tags:
      - Project Tasks
      summary: Bulk update tasks for the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write'
      operationId: ProjectTasks_Update
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID the task belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: The request information for the task update
        content:
          application/json-patch+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskUpdateRequest'
          application/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskUpdateRequest'
          text/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskUpdateRequest'
          application/*+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskUpdateRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id}/roles:
    post:
      tags:
      - Project Tasks
      summary: Add a role to a task for the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read

        Finance: Read'
      operationId: ProjectTasks_AddRole
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID the task belongs to
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: The task ID the task belongs to
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request information for the task creation
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TaskRoleRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TaskRoleRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TaskRoleRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TaskRoleRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RoleResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/RoleResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/RoleResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id}/roles/bulk:
    post:
      tags:
      - Project Tasks
      summary: Bulk add roles to a task for the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read

        Finance: Read'
      operationId: ProjectTasks_BulkAddRoles
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID the task belongs to
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: The task ID the task belongs to
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request information for the task creation
        content:
          application/json-patch+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskRoleRequest'
          application/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskRoleRequest'
          text/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskRoleRequest'
          application/*+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TaskRoleRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id}:
    patch:
      tags:
      - Project Tasks
      summary: Update a task role by ID in the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read

        Finance: Read'
      operationId: ProjectTasks_UpdateRole
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID
        required: true
        schema:
          type: integer
          format: int64
      - name: taskId
        in: path
        description: The task ID
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        description: The role ID the task role belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: The request information for the role update
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TaskRoleUpdateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TaskRoleUpdateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TaskRoleUpdateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TaskRoleUpdateRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RoleResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/RoleResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/RoleResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
    delete:
      tags:
      - Project Tasks
      summary: Remove task role by ID in the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read'
      operationId: ProjectTasks_RemoveRole
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID that the task belongs to
        required: true
        schema:
          type: integer
          format: int64
      - name: taskId
        in: path
        description: The task ID that the role belongs to
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        description: The role ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: No Content - Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/{id}/allocations:
    post:
      tags:
      - Project Tasks
      summary: Allocates a person to a task role on the given account and project
      description: 'A person cannot be allocated entirely inside a period of unavailability and cannot be allocated outside of their employment dates.


        For allocations that overlap a period of unavailability, the API will truncate or not set the date range that the person is unavailable.


        Examples: Unavailable from 2020-01-11 to 2020-01-25, Allocation date from 2020-01-20 to 2020-03-31, will alocate the person from 2020-01-26 to 2020-03-31


        Unavailable from 2020-01-11 to 2020-01-25, Allocation date from 2020-01-01 to 2020-03-31, will alocate the person from 2020-01-01 to 2020-01-10 AND 2020-01-26 to 2020-03-31

        Permissions

        Project: Read

        Person: Read

        Role: Read

        Allocation: Write'
      operationId: ProjectTasks_AddAllocation
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID
        required: true
        schema:
          type: integer
          format: int64
      - name: taskId
        in: path
        description: The task ID
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        description: The role ID the task role belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Request object containing the person to allocate
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
        '422':
          description: Unprocessable Entity
    delete:
      tags:
      - Project Tasks
      summary: Removes a person's allocation on a task role on the given account and project
      description: 'The request must contain the person id, start and end date to ensure that the role and allocation is correct and hasn''t been modified before trying to delete it.

        Permissions

        Project: Read

        Person: Read

        Role: Read

        Allocation: Write'
      operationId: ProjectTasks_RemoveAllocation
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The Project ID
        required: true
        schema:
          type: integer
          format: int64
      - name: taskId
        in: path
        description: The task ID that the role belongs to
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        description: The role ID
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Request object containing the person, role, start and end date to allocate
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TaskAllocationRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{taskId}/roles/allocations/bulk:
    post:
      tags:
      - Project Tasks
      summary: Bulk allocates people to task roles on the given account and project task
      description: 'A person cannot be allocated entirely inside a period of unavailability and cannot be allocated outside of their employment dates.


        For allocations that overlap a period of unavailability, the API will truncate or not set the date range that the person is unavailable.


        Examples: Unavailable from 2020-01-11 to 2020-01-25, Allocation date from 2020-01-20 to 2020-03-31, will alocate the person from 2020-01-26 to 2020-03-31


        Unavailable from 2020-01-11 to 2020-01-25, Allocation date from 2020-01-01 to 2020-03-31, will alocate the person from 2020-01-01 to 2020-01-10 AND 2020-01-26 to 2020-03-31

        Permissions

        Project: Read

        Person: Read

        Role: Read

        Allocation: Write'
      operationId: ProjectTasks_BulkAddAllocation
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID
        required: true
        schema:
          type: integer
          format: int64
      - name: taskId
        in: path
        description: The task ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Request object containing the role and the person to allocate
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectAllocationRequest'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectAllocationRequest'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectAllocationRequest'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectAllocationRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
        '422':
          description: Unprocessable Entity
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/{id}:
    delete:
      tags:
      - Project Tasks
      summary: Remove task by ID in the given account's project
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write'
      operationId: ProjectTasks_Remove
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID that the role belongs to
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        description: The task ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content - Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/projects/{projectId}/tasks/by-templates:
    post:
      tags:
      - Project Tasks
      summary: Add tasks and roles for the given account's project using task template…
      description: 'Permissions

        Project: Read

        Person: Read

        Role: Write

        Allocation: Read

        Finance: Read'
      operationId: ProjectTasks_AddTasksByTemplates
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: projectId
        in: path
        description: The project ID the tasks belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: The request information for the task and role creation
        content:
          application/json-patch+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TasksByTemplatesRequest'
          application/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TasksByTemplatesRequest'
          text/json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TasksByTemplatesRequest'
          application/*+json:
            schema:
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/TasksByTemplatesRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTaskDetail'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTaskDetail'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTaskDetail'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity - Validation failures
components:
  schemas:
    RoleRequirement:
      type: object
      properties:
        startDate:
          type: string
          format: date-time
          example: '2019-01-01'
        endDate:
          type: string
          format: date-time
          example: '2020-12-31'
        allocatedPercent:
          maximum: 100
          minimum: 0
          type: integer
          format: int32
          example: 100
      additionalProperties: false
    TaskUpdateRequest:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type:
          - string
          - 'null'
          example: Project Engineer
        startDate:
          type:
          - string
          - 'null'
          format: date-time
          example: '2019-01-01'
        endDate:
          type:
          - string
          - 'null'
          format: date-time
          example: '2020-12-31'
        shiftDates:
          type: boolean
          description: 'If this property is true and you specify a changed task start or end date in this request,

            then the task''s start and end dates, and the start and end dates for all task roles

            will be adjusted by the same amount. If this property is set to true, then you must only send

            EITHER startDate OR endDate - behavior when setting both is to shift with the task start date'
          example: false
        shiftSubsequentTasks:
          type:
          - boolean
          - 'null'
          description: 'Used to shift subsequent tasks when the END DATE of this task is changed.

            If true, subsequent tasks will be shifted by the same number of days as this task'
      additionalProperties: false
    ProjectRoleTagEntity:
      type: object
      properties:
        id:
          type: integer
          format: int64
        collectionId:
          type: integer
          format: int64
        name:
          type:
          - string
          - 'null'
        collectionName:
          type:
          - string
          - 'null'
        collectionColor:
          type:
          - string
          - 'null'
      additionalProperties: false
      description: Represents a role tag with its collection metadata
    RoleResponse:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 123
        taskId:
          type:
          - string
          - 'null'
          format: uuid
          example: 00000000-0000-0000-0000-000000000000
        nameId:
          type: integer
          format: int64
          example: 1
        name:
          type:
          - string
          - 'null'
          example: Project Engineer
        roleCost:
          type:
          - number
          - 'null'
          format: double
          example: 123.45
        startDate:
          type: string
          format: date-time
          example: '2019-01-01'
        endDate:
          type: string
          format: date-time
          example: '2020-12-31'
        type:
          enum:
          - Salaried
          - Hourly
          - All
          type: string
          example: Salaried
        skillSet:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int64
          example: '[1,2,3]]'
        isFilled:
          type: boolean
          example: false
        billable:
          type: boolean
          example: false
        allocations:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RoleRequirement'
        unfilledRanges:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RoleUnfilled'
        note:
          type:
          - string
          - 'null'
        categoryId:
          type:
          - integer
          - 'null'
          format: int64
        notification:
          $ref: '#/components/schemas/RoleNotificationData'
        isCommunicated:
          type: boolean
          readOnly: true
        relatedTitles:
          type:
          - array
          - 'null'
          items:
            type: string
        externalId:
          type:
          - string
          - 'null'
        createdBy:
          type: integer
          format: int32
        createdOn:
          type: string
          format: date-time
        hire:
          $ref: '#/components/schemas/RoleHire'
        roleTags:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ProjectRoleTagEntity'
        assignmentBreakdownBy:
          enum:
          - Custom
          - Phases
          - Monthly
          - Weekly
          type:
          - string
          - 'null'
        assignedPersonId:
          type:
          - integer
          - 'null'
          format: int64
        assignedPersonName:
          type:
          - string
          - 'null'
        crew:
          $ref: '#/components/schemas/RoleCrewResponse'
      additionalProperties: false
    TaskResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 00000000-0000-0000-0000-000000000000
        name:
          type:
          - string
          - 'null'
          example: Project Engineer
        startDate:
          type: string
          format: date-time
          example: '2019-01-01'
        endDate:
          type: string
          format: date-time
          example: '2020-12-31'
        createdOn:
          type: string
          format: date-time
          example: '2021-05-27T10:47:23.530Z'
        lastModifiedOn:
          type: string
          format: date-time
          example: '2021-05-27T10:58:23.530Z'
      additionalProperties: false
    ProjectAllocationRequest:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
          example: 1
        personId:
          type: integer
          format: int64
          example: 1
        startDate:
          type:
          - string
          - 'null'
          format: date-time
          example: '2019-01-01'
        endDate:
          type:
          - string
          - 'null'
          format: date-time
          example: '2019-12-31'
        roleStartDate:
          type:
          - string
          - 'null'
          description: 'Optional. When provided, updates the unfilled role''s start date before creating the allocation.

            Must be set together with ResourcePlanning.Contracts.ProjectAllocationRequest.RoleEndDate — supplying only one will fail validation.'
          format: date-time
        roleEndDate:
          type:
          - string
          - 'null'
          description: 'Optional. When provided, updates the unfilled role''s end date before creating the allocation.

            Must be set together with ResourcePlanning.Contracts.ProjectAllocationRequest.RoleStartDate — supplying only one will fail validation.'
          format: date-time
      additionalProperties: false
    RoleCrewTradeResponse:
      type: object
      properties:
        id:
          type: integer
          description: Trade id (`crewtrade.id`).
          format: int64
          example: 1
        name:
          type:
          - string
          - 'null'
          description: Trade display name.
          example: Electrician
        colour:
          type:
          - string
          - 'null'
          description: Trade colour as a hex string; one of ResourcePlanning.Common.Validation.CrewTradeColourAttribute.AllowedHexValues.
          example: '#D6F0F5'
      additionalProperties: false
      description: 'Trade summary embedded on ResourcePlanning.Contracts.RoleCrewResponse.Trade. Slim projection of

        ResourcePlanning.Contracts.CrewTradeResponse (omits `inUse` and `createdOn`).'
    RoleNotificationData:
      type: object
      properties:
        notifiedOn:
          type: string
          format: date-time
        recipientIds:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int64
      additionalProperties: false
    TaskRoleRequest:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          example: Project Engineer
        skillSet:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int64
          example:
          - 1
          - 2
          - 3
        note:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          example: Some note
  

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bridgit/refs/heads/main/openapi/bridgit-project-tasks-api-openapi.yml