openapi: 3.1.0
info:
  title: Finding Audit Event Metadata Schema
  version: 0.1.0
components:
  schemas:
    FindingAuditMetadata:
      type: object
      required:
        - finding_id
        - before_status
        - after_status
        - before
        - after
      properties:
        finding_id:
          type: integer
        before_status:
          type:
            - string
            - 'null'
        after_status:
          type: string
        system_origin:
          type:
            - boolean
            - 'null'
          description: True when the lifecycle mutation was triggered by automation rather than a human actor.
        resolved_reason:
          type:
            - string
            - 'null'
        closed_reason:
          type:
            - string
            - 'null'
        assignee_user_id:
          type:
            - integer
            - 'null'
        owner_user_id:
          type:
            - integer
            - 'null'
        triaged_at:
          type:
            - string
            - 'null'
          format: date-time
        in_progress_at:
          type:
            - string
            - 'null'
          format: date-time
        reopened_at:
          type:
            - string
            - 'null'
          format: date-time
        due_at:
          type:
            - string
            - 'null'
          format: date-time
        sla_days:
          type:
            - integer
            - 'null'
        before:
          $ref: '#/components/schemas/FindingAuditSnapshot'
        after:
          $ref: '#/components/schemas/FindingAuditSnapshot'
      additionalProperties: false
    FindingAuditSnapshot:
      type: object
      properties:
        status:
          type:
            - string
            - 'null'
        severity:
          type:
            - string
            - 'null'
        due_at:
          type:
            - string
            - 'null'
          format: date-time
        sla_days:
          type:
            - integer
            - 'null'
        assignee_user_id:
          type:
            - integer
            - 'null'
        owner_user_id:
          type:
            - integer
            - 'null'
        triaged_at:
          type:
            - string
            - 'null'
          format: date-time
        in_progress_at:
          type:
            - string
            - 'null'
          format: date-time
        reopened_at:
          type:
            - string
            - 'null'
          format: date-time
        resolved_at:
          type:
            - string
            - 'null'
          format: date-time
        resolved_reason:
          type:
            - string
            - 'null'
        closed_at:
          type:
            - string
            - 'null'
          format: date-time
        closed_reason:
          type:
            - string
            - 'null'
        closed_by_user_id:
          type:
            - integer
            - 'null'
      additionalProperties: false