MINE Tickets API

The Tickets API from MINE — 16 operation(s) for tickets.

OpenAPI Specification

mine-tickets-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: MineOS Aispm Tickets API
  version: v1.0
servers:
- url: https://api.portal.saymine.com/
  description: MineOS EU API Endpoint
- url: https://api.us.portal.saymine.com/
  description: MineOS US API Endpoint
security:
- Bearer: []
tags:
- name: Tickets
paths:
  /api/ticket/List:
    get:
      tags:
      - Tickets
      summary: List all requests
      description: "Returns a paginated list of tickets. Use the cursor tokens in the response to fetch the next or previous page.\r\nAll query filters are optional. Closed requests created more than 3 months ago are not included in the response."
      parameters:
      - name: State
        in: query
        description: 'Filter by list of ticket states. The default is all. Possible values are: [Open, Closed, Redacted, Processing, Notify, Delete, Redacting, Edit, Unverified]'
        schema:
          type: string
          example: Processing,Notify
        example: Processing,Notify
      - name: PrivacyRightIds
        in: query
        description: Filter by list of right ids. The default is all.
        schema:
          type: string
          example: delete
        example: delete
      - name: BrandIds
        in: query
        description: Filter by list of brand ids. The default is all.
        schema:
          type: string
      - name: MinCreatedAt
        in: query
        description: 'Filter by created at dates - return only requests that were created after the provided date at 00:00, in the format: yyyy-MM-dd.'
        schema:
          type: string
          example: '2023-05-20'
        example: '2023-05-20'
      - name: MaxCreatedAt
        in: query
        description: 'Filter by created at dates - return only requests that were created before the provided date at 00:00, iin the format: yyyy-MM-dd'
        schema:
          type: string
          example: '2023-05-20'
        example: '2023-05-20'
      - name: MinClosedAt
        in: query
        description: "Filter by closed at dates - return only requests that were closed after the provided date at 00:00, in the format: yyyy-MM-dd.\r\nRelevant for tickets that were closed after 13/03/2024."
        schema:
          type: string
          example: '2024-04-20'
        example: '2024-04-20'
      - name: MaxClosedAt
        in: query
        description: "Filter by closed at dates - return only requests that were closed before the provided date at 00:00, iin the format: yyyy-MM-dd.\r\nRelevant for tickets that were closed after 13/03/2024."
        schema:
          type: string
          example: '2024-04-20'
        example: '2024-04-20'
      - name: After
        in: query
        schema:
          type: string
      - name: Before
        in: query
        schema:
          type: string
      - name: Size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestsListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
  /api/ticket/{ticketId}:
    get:
      tags:
      - Tickets
      summary: Get ticket
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request to get info for
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketInfo'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
  /api/ticket/{ticketId}/log:
    get:
      tags:
      - Tickets
      summary: Get ticket logs
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request to get info for
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketLogs'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
  /api/ticket/{ticketId}/dueDate:
    post:
      tags:
      - Tickets
      summary: Update the due date of a request
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request to upadte due date for
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DueDateUpdateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/DueDateUpdateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DueDateUpdateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DueDateUpdateRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
  /api/ticket/Create/v2:
    post:
      tags:
      - Tickets
      summary: Create request [v2]
      description: "Duplication handling - if there was already an attempt to create a ticket with the same email with the same request type in the last minute,\r\nwe return 202 with the existing ticket id and avoid creating another one"
      parameters:
      - name: test
        in: query
        description: When test is True a request will not actually be created
        schema:
          type: boolean
        example: false
      requestBody:
        description: the details of the request
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestCreateResponse'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
  /api/ticket/CreateMany:
    post:
      tags:
      - Tickets
      summary: Create many requests
      description: "Duplication handling - if there was already an attempt to create a request with the same email and the same request type in the last minute,\r\nwe return the existing request id and avoid creating another one.\r\nFailure in creating a request will be indicated in the response,\r\nif any request creation fails, the system continuous with the rest of the requests"
      parameters:
      - name: test
        in: query
        description: When test is True no requests will actually be created
        schema:
          type: boolean
        example: false
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SingleRequestCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
  /api/ticket/GetMetadata:
    get:
      tags:
      - Tickets
      summary: Get metadata
      description: Used to read metadata or custom identifiers from the request.
      parameters:
      - name: ticketId
        in: query
        description: TicketID of the request to update status for
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketGetMetadataResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/UpdateMetadata:
    post:
      tags:
      - Tickets
      summary: Update metadata
      description: Used to store metadata or custom identifiers on the request.
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketUpdateMetadataRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketUpdateMetadataRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketUpdateMetadataRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketUpdateMetadataRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/{ticketId}/require-attention:
    post:
      tags:
      - Tickets
      summary: Mark/unmark a ticket with the Require Attention label
      description: "Will pause any automatic ticket runs until marked as reviewed.\r\nWill not pause any data mutation process once the processing automation step has started"
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/{ticketId}/group-assignment:
    post:
      tags:
      - Tickets
      summary: Assign a group to a request
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/GroupAssignmentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/GroupAssignmentRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/GroupAssignmentRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/GroupAssignmentRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/AddNote:
    post:
      tags:
      - Tickets
      summary: Add a note
      parameters:
      - name: ticketId
        in: query
        description: The Request ID to add note for
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      - name: userId
        in: query
        description: Optional. The User ID to add note on behalf of
        schema:
          type: string
        example: '1135124226903180384'
      requestBody:
        description: The contents of the note
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/NoteTextRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/NoteTextRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/NoteTextRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/NoteTextRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/Redact/{ticketId}:
    post:
      tags:
      - Tickets
      summary: Redact request
      parameters:
      - name: ticketId
        in: path
        description: Ticket ID
        required: true
        schema:
          type: string
        example: eb640185-9e3d-48f5-bf74-d7a3120814e8
      - name: test
        in: query
        description: When set to true, request will not actually be redacted
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Success
  /api/ticket/CloseV2:
    post:
      tags:
      - Tickets
      summary: Close request
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CloseTicketRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CloseTicketRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CloseTicketRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CloseTicketRequest'
      responses:
        '200':
          description: Success
  /api/ticket/EngageAutopilot/{ticketId}:
    post:
      tags:
      - Tickets
      summary: Start Autopilot
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request to start autopilot for
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketAssignAutoPilotResponse'
  /api/ticket/{ticketId}/custom-integrations/{integrationId}:
    post:
      tags:
      - Tickets
      summary: Update custom integration status [v2]
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the associated request
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      - name: integrationId
        in: path
        description: IntegrationID of the associated request
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /api/ticket/{ticketId}/workflow:
    get:
      tags:
      - Tickets
      summary: Get the workflow assigned to a ticket
      description: Returns the workflow id, display name, and the list of integrations attached to the ticket's workflow.
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketWorkflowResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
    post:
      tags:
      - Tickets
      summary: Change the workflow assigned to a ticket
      description: "Allowed only when the ticket has not yet started processing. If the requested workflow is the same as the\r\none already assigned, the request is a no-op and returns 200 without any side effect."
      parameters:
      - name: ticketId
        in: path
        description: TicketID of the request
        required: true
        schema:
          type: string
        example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
      requestBody:
        description: Workflow id to assign
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ChangeWorkflowRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeWorkflowRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ChangeWorkflowRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ChangeWorkflowRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TicketWorkflowResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: string
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
components:
  schemas:
    PublicNoteResponse:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
        text:
          type: string
          nullable: true
        createdBy:
          type: string
          nullable: true
      additionalProperties: false
    TicketWorkflowResponse:
      type: object
      properties:
        workflowId:
          type: string
          description: The workflow id assigned to the ticket.
          nullable: true
          example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
        workflowName:
          type: string
          description: The display name of the workflow.
          nullable: true
          example: Employees
        integrations:
          type: array
          items:
            $ref: '#/components/schemas/TicketWorkflowIntegration'
          description: Integrations attached to the ticket's workflow.
          nullable: true
      additionalProperties: false
    RequestCreateResponse:
      type: object
      properties:
        ticketId:
          type: string
          description: ID of request that was created
          nullable: true
      additionalProperties: false
    FormCustomData:
      type: object
      properties:
        state:
          type: string
          nullable: true
        mobileNumber:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        customQuestion:
          $ref: '#/components/schemas/CustomQuestion'
        authorizedAgentInfo:
          $ref: '#/components/schemas/AuthorizedAgentInfo'
        fileAttachment:
          $ref: '#/components/schemas/FileAttachment'
        formCustomEntries:
          type: string
          nullable: true
        fullUrl:
          type: string
          nullable: true
        referrer:
          type: string
          nullable: true
      additionalProperties: false
    SingleRequestCreateResponse:
      type: object
      properties:
        ticketId:
          type: string
          description: ID of request that was created
          nullable: true
        alreadyExists:
          type: boolean
          description: True if the request was already created in the last 1 minute
          example: false
        emailAddress:
          type: string
          description: Email address of the requesting user
          nullable: true
        success:
          type: boolean
          description: Whether or not the request was created successfully
        error:
          type: string
          description: Error message in case a request creation failed
          nullable: true
      additionalProperties: false
    ActionStatus:
      enum:
      - NotStarted
      - MissingIdentifiers
      - InProgress
      - Completed
      - Failed
      - Expired
      - PartialCompleted
      type: string
    TicketCustomIntegrationStatus:
      enum:
      - Unknown
      - Completed
      - Failed
      - MissingIdentifiers
      - UserNotFound
      - CannotDeleteData
      type: string
    RequestType:
      enum:
      - Unknown
      - Delete
      - Get
      - Fetch
      - NoProcess
      type: string
    CloseTicketRequest:
      type: object
      properties:
        ticketId:
          type: string
          description: Ticket ID to close
          nullable: true
          example: eb640185-9e3d-48f5-bf74-d7a3120814e8
        reason:
          $ref: '#/components/schemas/TicketCloseType'
        test:
          type: boolean
          description: When set to true, request is not actually closed
          example: false
        skipAutomation:
          type: boolean
          description: "When set to true, any close automations will be skipped (e.g. sending a complete notification to user)\r\nIf the ticket's request type is undetermined, a close automation will be skipped"
          example: false
        templateId:
          type: string
          description: "When provided, the ticket will be closed with the provided template.\r\nThe default workflow template will be used if not provided."
          nullable: true
          example: 5f44e478-7fca-477c-94e4-a5a1e39da5d6
      additionalProperties: false
    StateChangeSource:
      enum:
      - Unknown
      - DataAction
      - Agent
      - ApiKey
      - BackCompat
      - AutoRejectRule
      - EvidenceFinder
      - AutoRedactRule
      - AutoCompleteRule
      - AutoAcceptRule
      - FormSubmission
      - EmailValidation
      - EmailForwarding
      - ManualCreation
      - Manual
      - AutoClose
      - Import
      - AutoTransition
      - InternalOrchestration
      type: string
    StateHistoryLog:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StateLogItem'
          nullable: true
      additionalProperties: false
    TicketStateEnum:
      enum:
      - Unknown
      - Open
      - Closed
      - Redacted
      - Processing
      - Notify
      - Redacting
      - Unverified
      - NotReady
      - Edit
      - Pending
      type: string
    PortalNotesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/NoteResponse'
          nullable: true
      additionalProperties: false
    WorkflowChangeHistoryLog:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowChangeLogItemResponse'
          nullable: true
      additionalProperties: false
    WorkflowChangeLogItemResponse:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
        changeSource:
          $ref: '#/components/schemas/StateChangeSource'
        agentName:
          type: string
          nullable: true
        agentEmail:
          type: string
          nullable: true
        apiKeyName:
          type: string
          nullable: true
        fromWorkflowId:
          type: string
          nullable: true
        fromWorkflowName:
          type: string
          nullable: true
        toWorkflowId:
          type: string
          nullable: true
        toWorkflowName:
          type: string
          nullable: true
      additionalProperties: false
    TicketGetMetadataResponse:
      type: object
      properties:
        customFields:
          type: object
          additionalProperties:
            type: string
            nullable: true
          nullable: true
      additionalProperties: false
    GroupAssignmentRequest:
      required:
      - groupId
      type: object
      properties:
        groupId:
          minLength: 1
          type: string
      additionalProperties: false
    AuthorizedAgentInfo:
      type: object
      properties:
        authorizedAgentEmail:
          type: string
          nullable: true
        verificationDocumentFile:
          $ref: '#/components/schemas/FileAttachment'
      additionalProperties: false
    AssignmentLog:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AssignmentLogItem'
          nullable: true
      additionalProperties: false
    AssignedTicket:
      type: object
      properties:
        id:
          type: string
          nullable: true
        autoPilotState:
          $ref: '#/components/schemas/AutoPilotState'
        message:
          type: string
          nullable: true
      additionalProperties: false
    TicketUpdateMetadataRequest:
      required:
      - customFields
      - ticketId
      type: object
      properties:
        ticketId:
          minLength: 1
          type: string
          description: TicketID of the request to update status for
          example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
        customFields:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: 'A collection of metadata fields to add to the request. Use the following special names to set custom identifiers: $phoneNumber, $internalId'
        test:
          type: boolean
          description: Used for testing; When Test is true, the change will not actually apply
      additionalProperties: false
    TicketWorkflowIntegration:
      type: object
      properties:
        taskId:
          type: string
          description: Task id (integration id) of the workflow task.
          nullable: true
        systemId:
          type: string
          description: System id (system catalog id) of the integration.
          nullable: true
        displayName:
          type: string
          description: Display name of the integration.
          nullable: true
      additionalProperties: false
    TicketSource:
      enum:
      - Unknown
      - MineApp
      - Form
      - Api
      - EmailForwarding
      - Manual
      - Import
      type: string
    TicketLogs:
      type: object
      properties:
        conversation:
          $ref: '#/components/schemas/PortalMessageResponse'
        notes:
          $ref: '#/components/schemas/PortalNotesResponse'
        integrationsLogs:
          $ref: '#/components/schemas/IntegrationHistoryLog'
        stateLogs:
          $ref: '#/components/schemas/StateHistoryLog'
        assignmentLogs:
          $ref: '#/components/schemas/AssignmentLog'
        requireAttentionLogs:
          $ref: '#/components/schemas/RequireAttentionHistoryLog'
        workflowChangesLogs:
          $ref: '#/components/schemas/WorkflowChangeHistoryLog'
      additionalProperties: false
    NoteResponse:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
        agentName:
          type: string
          nullable: true
        agentEmail:
          type: string
          nullable: true
        noteText:
          type: string
          nullable: true
      additionalProperties: false
    IntegrationState:
      enum:
      - Unknown
      - NotStarted
      - Starting
      - InProgress
      - Completed
      - Failed
      - NewData
      - MissingIdentifiers
      - PartialCompleted
      type: string
    AssignmentLogItem:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
        agentName:
          type: string
          nullable: true
        agentEmail:
          type: string
          nullable: true
        groupNameAssignment:
          type: string
          nullable: true
      additionalProperties: false
    TicketListItem:
      type: object
      properties:
        ticketId:
          type: string
          nullable: true
        requestId:
          type: string
          nullable: true
        workflowId:
          type: string
          nullable: true
        workflowName:
          type: string
          nullable: true
      additionalProperties: false
    ExternalTicketState:
      enum:
      - Unknown
      - Open
      - Closed
      - Redacted
      - Processing
      - Notify
      - Redacting
      - Unverified
      - NotReady
      - Edit
      - Pending
      type: string
    CursorTokens:
      type: object
      properties:
        before:
          type: string
          nullable: true
        after:
          type: string
          nullable: true
      additionalProperties: false
    AutoPilotState:
      enum:
      - NotAssigned
      - Assigned
      - TimeOut
      type: string
    FileAttachment:
      type: object
      properties:
        label:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        path:
          type: string
          nullable: true
        expiryDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    TicketCustomIntegrationAction:
      enum:
      - Unknown
      - Delete
      - Copy
      type: string
    RequireAttentionHistoryLog:
      type: object
      properties:
        items:
          type: array
          items

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mine/refs/heads/main/openapi/mine-tickets-api-openapi.yml