openapi: 3.0.1
info:
  title: Issues API
  description: Provides access to the issues that are part of a Hyperproof organization.
  version: '1.0'
servers:
  - url: https://api.hyperproof.app/v1/issues
    description: Hyperproof US
  - url: https://api.hyperproofgov.app/v1/issues
    description: Hyperproof Gov
  - url: https://api.hyperproof.eu/v1/issues
    description: Hyperproof EU
security:
  - oauth2: []
paths:
  /:
    post:
      summary: Add Issue
      description: >+
        `POST /`


        #### Description


        Creates a new issue within an organization, capturing details such as
        title, description, severity, and associated objects.

      operationId: add-issue
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuePost'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
  /filter:
    put:
      summary: Get Issues Filtered
      description: >+
        `PUT /`


        #### Description


        Retrieves a collection of issues that match the specified filter
        criteria, such as status, priority, or assigned user.

      operationId: get-issues-filtered
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueFilter'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueCollection'
  /{issueId}:
    get:
      summary: Get Issue
      description: >
        `GET /{issueId}`


        #### Description


        Retrieves details of a specific issue by its unique ID, including its
        title, description, status, and associated metadata.
      operationId: get-issue
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue to retrieve.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
    patch:
      summary: Update Issue
      description: >+
        `PATCH /{issueId}`


        #### Description


        Updates an existing issue with new values, allowing changes to fields
        such as title, description, status, or assigned user.

      operationId: update-issue
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue to update.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuePatch'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
  /{issueId}/proof:
    post:
      summary: Add Issue Proof
      description: >+
        `POST /{issueId}/proof`


        #### Description


        Adds proof to a specified issue, uploading evidence files or links and
        associating them with the issue for verification and auditing purposes.

      operationId: add-issue-proof
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProofPost'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proof'
    get:
      summary: Get Issue Proof Metadata
      description: >+
        `GET /{issueId}/proof`


        #### Description


        Retrieves all proof items linked to a specified issue, including file
        details, upload metadata, and source information.

      operationId: get-issue-proof-meta
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProofCollection'
  /{issueId}/comments:
    get:
      summary: Get Issue Comments
      description: >
        `GET /{issueId}/comments`


        #### Description


        Retrieves all comments from an issue’s Activity Feed, including details
        such as author, timestamp, and message content.
      operationId: get-issue-comments
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentCollection'
    post:
      summary: Add Issue Comment
      description: >+
        `POST /{issueId}/comments`


        #### Description


        Adds a new comment to a specified issue via the issue's Activity Feed,
        recording the comment’s content, author, and timestamp.

      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentPost'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
  /{issueId}/comments/{commentId}:
    patch:
      summary: Update Issue Comment
      description: >
        `PATCH /{issueId}/comments/{commentId}`


        #### Description


        Updates the content of an existing comment linked to an issue, modifying
        its text or related metadata.
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
        - name: commentId
          in: path
          description: Unique ID of the comment
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentPatch'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
    delete:
      summary: Delete Issue Comment
      description: >
        `DEL /{issueId}/comments/{commentId}`


        #### Description


        Deletes a specified comment from an issue, removing its content and
        associated metadata from the issue’s Activity Feed.
      parameters:
        - name: issueId
          in: path
          description: Unique ID of the issue.
          required: true
          schema:
            type: string
        - name: commentId
          in: path
          description: Unique ID of the comment
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://accounts.hyperproof.app/oauth/token
          scopes:
            issue.read: Grants read access to issues
            issue.update: Grants update access to issues
  schemas:
    Activity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the activity
        orgId:
          type: string
          format: uuid
          description: The unique identifier for the organization the activity belongs to.
        type:
          type: string
          description: The type of the activity.
          enum:
            - event
            - comment
        message:
          type: string
          description: The description of this event.
        objectId:
          type: string
          format: uuid
          description: The unique identifier of the object related to the activity.
        objectType:
          $ref: '#/components/schemas/ObjectType'
        status:
          type: string
          description: The current status of the activity.
          enum:
            - active
            - deleted
            - pending
            - canceled
        createdBy:
          type: string
          format: uuid
          description: The unique identifier of the user who created the activity.
        createdOn:
          type: string
          format: date-time
          description: The date and time the activity was created (ISO-8601 format).
        updatedBy:
          type: string
          format: uuid
          description: The unique identifier of the user who last updated the activity.
        updatedOn:
          type: string
          format: date-time
          description: The date and time the activity was last updated (ISO-8601 format).
      example:
        id: a3f89b48-9ae1-4852-a229-c4aea92230b0
        orgId: ce83e3cd-5199-11ee-a644-522476618ae8
        type: comment
        message: This is a comment
        objectId: 16d22ded-88ac-4f5c-bc99-8064d9fc44d7
        objectType: audit
        status: active
        createdBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        createdOn: '2023-09-12T18:26:10.005365Z'
        updatedBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        updatedOn: '2023-09-12T18:26:10.005365Z'
    Comment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier for the comment.
        orgId:
          type: string
          format: uuid
          description: The unique identifier for the organization the comment belongs to.
        commentTextFormatted:
          type: string
          description: The formatted text of the comment.
        objectId:
          type: string
          format: uuid
          description: The unique identifier of the object the comment is attached to.
        objectType:
          $ref: '#/components/schemas/ObjectType'
        status:
          $ref: '#/components/schemas/ObjectStatus'
        createdBy:
          type: string
          format: uuid
          description: The unique identifier of the user who created the comment.
        updatedBy:
          type: string
          format: uuid
          description: The unique identifier of the user who last updated the comment.
        createdOn:
          type: string
          format: date-time
          description: The date and time the comment was created (ISO-8601 format).
        updatedOn:
          type: string
          format: date-time
          description: The date and time the comment was last updated (ISO-8601 format).
        sourceUpdatedOn:
          type: string
          format: date-time
          description: >-
            The date and time the comment was updated in teh source system
            (ISO-8601 format).
        deletedOn:
          type: string
          format: date-time
          description: The date and time the comment was deleted (ISO-8601 format).
        isInternal:
          type: boolean
          description: >-
            Whether the comment is internal-only and not visible to external
            auditors.
      example:
        id: ad21d858-c271-4c6d-8780-fecf6b16e534
        orgId: ad21d858-c271-4c6d-8780-fecf6b16e534
        commentTextFormatted: >-
          This is a comment mentioning a user
          {{user:53c8880a-7e14-4493-a392-0f10bf11cfce}}
        objectId: ad21d858-c271-4c6d-8780-fecf6b16e534
        objectType: task
        status: active
        createdBy: 554fbf38-f579-4cc8-819f-6377bd9defcb
        updatedBy: 53c8880a-7e14-4493-a392-0f10bf11cfce
        createdOn: 2024-06-23T19:37:23+0000
        updatedOn: 2024-06-27T22:28:30+0000
    CommentCollection:
      type: array
      description: Collection of comments
      items:
        $ref: '#/components/schemas/Comment'
    CommentPost:
      type: object
      properties:
        commentTextFormatted:
          type: string
          description: The formatted text for the comment.
        isInternalComment:
          type: boolean
          description: >-
            Whether the comment is internal-only. Internal comments are not
            visible to external auditors.
        objectType:
          $ref: '#/components/schemas/ObjectType'
        objectId:
          type: string
          description: The object identifier the comment is attached to.
        sourceCommentId:
          type: string
          description: >-
            The identifier of the comment in the external system from which it
            was synced.
        sourceUpdatedOn:
          type: string
          description: The date and time of the source for the comment (ISO-8601 format).
      required:
        - commentTextFormatted
      example:
        commentTextFormatted: The audit is completed.
        isInternalComment: true
        objectId: 82d7c228-8bcd-11e9-a94b-ab3de849498z
        objectType: risk
    CommentPatch:
      type: object
      properties:
        commentTextFormatted:
          type: string
          description: The formatted text of the comment.
        isInternalComment:
          type: boolean
          description: >-
            The flag indicating if the comment is internal-only and not visible
            to external auditors.
      example:
        commentTextFormatted: The audit is completed.
        isInternalComment: true
        objectId: 82d7c228-8bcd-11e9-a94b-ab3de849498z
    CustomFieldObjectValue:
      type: array
      items:
        type: object
        properties:
          fieldId:
            type: string
            description: Unique identifier for the custom field
          fieldName:
            type: string
            description: Name of the custom field
          fieldType:
            type: string
            description: Type of field
            enum:
              - text
              - number
              - date
              - user
              - textSingleSelect
              - textMultiSelect
          numberFormat:
            type: string
            description: Format if the field type is `number`
            enum:
              - decimal
              - percentage
          textValue:
            type: string
            description: Value if the field type is `text`
          numberValue:
            type: number
            description: Value if the field type is `number`
          dateValue:
            type: string
            description: Value if the field type is `date`
          userValue:
            type: string
            description: Value if the field type is `user`
          selection:
            type: string
            description: Value for `textSingleSelect`
          selections:
            type: array
            description: List of values for `textMultiSelect`
            items:
              type: string
    CustomFieldObjectValuePatch:
      type: object
      properties:
        fieldId:
          type: string
          description: Unique identifier for the custom field
        textValue:
          type: string
          description: Value if the field type is `text`
        numberValue:
          type: number
          description: Value if the field type is `number`
        dateValue:
          type: string
          description: Value if the field type is `date`
        userValue:
          type: string
          description: Value if the field type is `user`
        selections:
          type: array
          description: List of values for `textMultiSelect`
          items:
            type: string
    Issue:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier for the issue.
        orgId:
          type: string
          format: uuid
          description: The unique identifier for the organization the issue belongs to.
        summary:
          type: string
          description: The summary of the issue.
        index:
          type: integer
          description: >-
            The index of the issue used for generating unique
            references/identifiers of issues.
        description:
          type: string
          description: The description of the issue.
        assigneeId:
          type: string
          format: uuid
          description: The unique identifier of the assignee for the issue.
        groupId:
          type: string
          format: uuid
          description: The unique identifier of the group assigned to the issue.
        priority:
          $ref: '#/components/schemas/Priority'
          description: The priority of the issue.
        dueDate:
          type: string
          format: date-time
          description: The due date for resolving the issue (ISO-8601 format).
        linkedObjects:
          type: array
          description: The list of linked objects for the issue.
          items:
            $ref: '#/components/schemas/ObjectReference'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldObjectValue'
        status:
          $ref: '#/components/schemas/ObjectStatus'
        createdBy:
          type: string
          format: uuid
          description: The unique identifier of the user who created the issue.
        createdOn:
          type: string
          format: date-time
          description: The date and time the issue was created (ISO-8601 format).
        updatedBy:
          type: string
          format: uuid
          description: The unique identifier of the user who last updated the issue.
        updatedOn:
          type: string
          format: date-time
          description: The date and time the issue was last updated (ISO-8601 format).
        permissions:
          type: array
          description: The list of permissions for the issue.
          items:
            type: string
        workItemStatus:
          $ref: '#/components/schemas/WorkItemStatusIssue'
        sourceId:
          type: string
          description: The identifier of the source of the issue.
        sourceType:
          $ref: '#/components/schemas/ObjectType'
        sourceName:
          type: string
          description: The name of the source of the issue.
        sourceStatus:
          $ref: '#/components/schemas/ObjectStatus'
        impact:
          $ref: '#/components/schemas/Priority'
          description: The potential impact level of this issue.
        executiveSponsor:
          type: string
          description: The executive sponsor for the issue.
        businessOwner:
          type: string
          description: The business owner of the issue.
        actionPlan:
          type: string
          description: The action plan for resolving the issue.
        discoveredOn:
          type: string
          format: date-time
          description: The date the issue was discovered (ISO-8601 format).
        closedOn:
          type: string
          format: date-time
          description: The date and time the issue was closed (ISO-8601 format).
        effortLevel:
          $ref: '#/components/schemas/Priority'
          description: The expected effort level required to resolve the issue.
        isPrivate:
          type: boolean
          description: Whether the issue is private.
      example:
        id: f9106f7c-cedf-4003-9d4e-762128170083
        orgId: ce83e3cd-5199-11ee-a644-522476618ae8
        summary: Incorrect policy implementation
        key: I-23
        description: The policy implementation does not match standard operating procedures
        assigneeId: e99e616e-6211-22ff-b755-633587729bf9
        workItemStatus: notStarted
        priority: high
        dueDate: '2024-12-24T11:59:59+13:00'
        linkedObjects:
          - objectId: 9183ab44-d551-45ef-81ba-268e0617216b
            objectType: program
          - objectId: 4941bc77-6ff7-4977-9cad-0a00fcfb71e1
            objectType: label
        customFields:
          - fieldId: ceb912ab-519b-11ee-a644-522476618ae8
            fieldName: Sponsor
            fieldType: text
            textValue: John Smith
        status: active
        createdBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        createdOn: '2023-09-12T18:26:10.005365Z'
        updatedBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        updatedOn: '2023-09-12T18:26:10.005365Z'
        permissions: []
        sourceId: f06fe159-e7c1-4b42-8715-5615ff50b29c
        sourceType: audit
        sourceName: SOC2
        sourceStatus: active
        impact: medium
        executiveSponsor: d3636cb0-10bf-45e9-abaa-b0efba75965d
        businessOwner: 4b81e4aa-7577-4579-b05c-bcc76af8f2f1
        actionPlan: Update the implementation to modern standards
        discoveredOn: '2024-11-01T00:00:01Z'
        effortLevel: highest
        isPrivate: false
    IssueCollection:
      type: array
      description: Collection of issues.
      items:
        $ref: '#/components/schemas/Issue'
    IssueFilter:
      type: object
      properties:
        sourceObjects:
          type: array
          items:
            $ref: '#/components/schemas/ObjectReference'
        issueIds:
          type: array
          description: The list of issue identifiers to filter by.
          items:
            type: string
          format: uuid
        assigneeIds:
          type: array
          description: The list of assignee identifiers to filter issues by.
          items:
            type: string
          format: uuid
        workItemStatus:
          $ref: '#/components/schemas/WorkItemStatusIssue'
        createdAfter:
          type: string
          format: date-time
          description: >-
            The date after which issues were created for filtering (ISO-8601
            format).
        createdBefore:
          type: string
          format: date-time
          description: >-
            The date before which issues were created for filtering (ISO-8601
            format).
        modifiedAfter:
          type: string
          format: date-time
          description: >-
            The date after which issues were modified for filtering (ISO-8601
            format).
        modifiedBefore:
          type: string
          format: date-time
          description: >-
            The date before which issues were modified for filtering (ISO-8601
            format).
        status:
          $ref: '#/components/schemas/ObjectStatus'
      example:
        sourceObjects:
          - objectId: ceb912ab-519b-11ee-a644-522476618ae8
            objectType: control
        issueIds:
          - ba50096d-bbfa-47af-94a7-092b0984cf35
        assigneeIds:
          - ad21d858-c271-4c6d-8780-fecf6b16e534
        workItemStatus: inProgress
        createdAfter: '2020-12-10T20:00:00Z'
        createdBefore: '2020-12-11T20:00:00Z'
        modifiedAfter: '2020-12-17T20:00:00Z'
        modifiedBefore: '2020-12-18T20:00:00Z'
        status: active
    IssuePatch:
      type: object
      properties:
        summary:
          type: string
          description: The summary of the issue.
        description:
          type: string
          description: The description of the issue.
        assigneeId:
          type: string
          format: uuid
          description: The unique identifier of the user assigned to the issue.
        groupId:
          type: string
          description: >-
            The unique identifier of the group assigned to the issue. If set,
            clearGroupId must not be set.
        clearGroupId:
          type: boolean
          description: >-
            Clears the group unique identifier if `true`. If set, groupId must
            not be set.
        priority:
          $ref: '#/components/schemas/Priority'
          description: The priority of the issue.
        dueDate:
          type: string
          format: date-time
          description: The due date for the issue (ISO-8601 format).
        clearDueDate:
          type: boolean
          description: Whether to clear the due date for the issue.
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldObjectValuePatch'
        workItemStatus:
          $ref: '#/components/schemas/WorkItemStatusIssue'
        source:
          $ref: '#/components/schemas/ObjectReference'
        impact:
          $ref: '#/components/schemas/Priority'
          description: The potential impact level of this issue.
        executiveSponsor:
          type: string
          description: The executive sponsor for the issue.
        businessOwner:
          type: string
          description: The business owner for the issue.
        actionPlan:
          type: string
          description: The action plan for the issue.
        discoveredOn:
          type: string
          format: date-time
          description: The date the issue was discovered (ISO-8601 format).
        closedOn:
          type: string
          format: date-time
          description: The date the issue was closed (ISO-8601 format).
        effortLevel:
          $ref: '#/components/schemas/Priority'
          description: The expected effort level required for the issue.
        isPrivate:
          type: boolean
          description: Whether the issue is private.
      example:
        summary: Incorrect policy implementation
        description: The policy implementation does not match standard operating procedures
        assigneeId: e99e616e-6211-22ff-b755-633587729bf9
        workItemStatus: notStarted
        priority: high
        dueDate: '2024-12-24T00:00:01Z'
        customFields:
          - fieldId: ceb912ab-519b-11ee-a644-522476618ae8
            textValue: John Smith
        clearDueDate: false
        source:
          objectId: f06fe159-e7c1-4b42-8715-5615ff50b29c
          objectType: audit
        impact: medium
        executiveSponsor: d3636cb0-10bf-45e9-abaa-b0efba75965d
        businessOwner: 4b81e4aa-7577-4579-b05c-bcc76af8f2f1
        actionPlan: Update the implementation to modern standards
        discoveredOn: '2024-11-01T00:00:01Z'
        closedOn: '2024-11-02T00:00:01Z'
        effortLevel: highest
        isPrivate: false
    IssuePost:
      required:
        - summary
        - source
      type: object
      properties:
        summary:
          type: string
          description: The summary of the issue.
        description:
          type: string
          description: The description of the issue.
        assigneeId:
          type: string
          format: uuid
          description: The assignee identifier for the issue.
        groupId:
          type: string
          format: uuid
          description: The unique identifier of the group to assign to the issue.
        priority:
          $ref: '#/components/schemas/Priority'
          description: The priority of the issue.
        dueDate:
          type: string
          format: date-time
          description: The due date for the issue (ISO-8601 format).
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldObjectValuePatch'
        workItemStatus:
          $ref: '#/components/schemas/WorkItemStatusIssue'
        source:
          $ref: '#/components/schemas/ObjectReference'
        impact:
          $ref: '#/components/schemas/Priority'
          description: The potential impact level of this issue.
        executiveSponsor:
          type: string
          description: The executive sponsor for the issue.
        businessOwner:
          type: string
          description: The business owner for the issue.
        actionPlan:
          type: string
          description: The action plan for the issue.
        discoveredOn:
          type: string
          format: date-time
          description: The discovered date for the issue (ISO-8601 format).
        closedOn:
          type: string
          format: date-time
          description: The closed date for the issue (ISO-8601 format).
        effortLevel:
          $ref: '#/components/schemas/Priority'
          description: The expected effort level required for the issue.
        isPrivate:
          type: boolean
          description: Whether the issue is private.
      example:
        summary: Incorrect policy implementation
        description: The policy implementation does not match standard operating procedures
        assigneeId: e99e616e-6211-22ff-b755-633587729bf9
        workItemStatus: notStarted
        priority: high
        dueDate: '2024-12-24T00:00:01Z'
        customFields:
          - fieldId: ceb912ab-519b-11ee-a644-522476618ae8
            textValue: John Smith
        source:
          objectId: f06fe159-e7c1-4b42-8715-5615ff50b29c
          objectType: audit
        impact: medium
        executiveSponsor: d3636cb0-10bf-45e9-abaa-b0efba75965d
        businessOwner: 4b81e4aa-7577-4579-b05c-bcc76af8f2f1
        actionPlan: Update the implementation to modern standards
        discoveredOn: '2024-11-01T00:00:01Z'
        closedOn: '2024-11-02T00:00:01Z'
        effortLevel: highest
        isPrivate: false
    ObjectReference:
      type: object
      properties:
        objectType:
          $ref: '#/components/schemas/ObjectType'
        objectId:
          type: string
          description: The unique identifier of the referenced object.
        parentId:
          type: string
          description: The unique identifier of the parent of the referenced object.
    ObjectStatus:
      type: string
      description: The status of the object
      enum:
        - active
        - archived
    ObjectType:
      type: string
      description: The type of the object.
      enum:
        - audit
        - connection
        - control
        - controlScope
        - domain
        - freshnessHistory
        - exportFile
        - label
        - organization
        - organizationUser
        - policy
        - program
        - proof
        - request
        - requirement
        - risk
        - riskRegister
        - section
        - task
        - scope
        - template
        - user
    Priority:
      type: string
      description: The priority level.
      enum:
        - highest
        - high
        - medium
        - low
        - lowest
    Proof:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the proof item
        orgId:
          type: string
          description: Unique identifier for the organization
        filename:
          type: string
          description: Name of the uploaded file
        nameOverride:
          type: string
          description: Name of proof Hyperproof given by Hyperproof user
        contentType:
          type: string
          description: MIME type of the file (e.g.,`text/plain`)
        fileExtension:
          type: string
          description: File extension (e.g.,`txt`)
        size:
          type: number
          description: File size in bytes
        version:
          type: integer
          description: Version of the proof item
        source:
          type: string
          description: Source of the file (e.g.,localComputer)
        sourceVersion:
          type: integer
          description: The version of the proof maintained by the source system
        ownedBy:
          type: string
          description: Unique identifier of the user who owns the proof item
        isPrivate:
          type: boolean
          description: Whether the proof item is private
        uploadedOn:
          type: string
          description: The date the proof was uploaded (ISO-8601 format)
        status:
          type: string
          description: Status of the proof item
          enum:
            - active
            - archived
            - deleted
            - pending
            - canceled
        createdBy:
          type: string
          description: Unique identifier of the user who created the proof item
        createdOn:
          type: string
          description: The date the proof was created (ISO-8601 format)
        updatedBy:
          type: string
          description: Unique identifier of the user who last updated the proof item
        updatedOn:
          type: string
          description: The date the proof was updated (ISO-8601 format)
      example:
        id: 4eb909de-51af-11ee-a644-522476618ae8
        orgId: ce83e3cd-5199-11ee-a644-522476618ae8
        filename: example.txt
        contentType: text/plain
        fileExtension: txt
        size: 627
        version: 0
        source: localComputer
        ownedBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        uploadedOn: '2023-09-12T20:59:47.694353Z'
        isPrivate: false
        status: active
        createdBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        updatedBy: 82d7c228-8bcd-11e9-a94b-ab3de8494987
        createdOn: '2023-09-12T20:59:47.694353Z'
        updatedOn: '2023-09-12T20:59:47.694353Z'
    ProofCollection:
      type: array
      description: A collection of proof.
      items:
        $ref: '#/components/schemas/Proof'
    ProofPost:
      type: object
      required:
        - proof
      properties:
        proof:
          type: string
          format: binary
        hp-proof-owned-by:
          type: string
        hp-proof-source:
          type: string
        hp-proof-source-id:
          type: string
        hp-proof-source-file-id:
          type: string
        hp-proof-source-modified-on:
          type: string
          format: date-time
        hp-proof-live-sync-enabled:
          type: boolean
    WorkItemStatusIssue:
      type: string
      description: The work item status.
      enum:
        - notStarted
        - inProgress
        - remediated
        - accepted
