tread.io Tickets API

The Tickets API from tread.io — 14 operation(s) for tickets.

OpenAPI Specification

treadio-tickets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Horizon API V1 AccountExternalTruckIdentifier Tickets API
  version: '1.0'
  contact:
    name: Tread
    url: https://tread.io
    email: developers@tread.io
  description: 'This is the Version 1 implementation.


    When in doubt we default to the practices outlined [here](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries)'
  license:
    name: Private
    url: https://tread.io
servers:
- description: production
  url: https://api.tread-horizon.com
security:
- bearerAuth: []
tags:
- name: Tickets
paths:
  /v1/companies/{company-id}/orders/{order-id}/tickets:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - schema:
        type: string
        format: uuid
      name: order-id
      in: path
      required: true
      description: Order ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Tickets for an Order for a Company
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-companies-company-id-orders-order-id-id-tickets
      description: 'Retrive `Tickets` for an `Order`.

        Filter usage:

        * to filter a from date: `filter[from_date]`

        * to filter a to date: `filter[to_date]`

        '
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - schema:
          type: string
        in: query
        name: filter[from_date]
        description: Start range of ticket.created_at
      - schema:
          type: string
        in: query
        name: filter[to_date]
        description: End range of ticket.created_at
      - schema:
          type: boolean
        in: query
        name: filter[flagged]
        description: Filter to only flagged or un-flagged Tickets
      - $ref: '#/components/parameters/filter-sources'
      x-stoplight:
        id: sxk44khjpj9h8
  /v1/companies/{company-id}/orders/{order-id}/tickets/rollup_summary:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - schema:
        type: string
        format: uuid
      name: order-id
      in: path
      required: true
      description: Order ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Ticket Rollup Summary for an Order for a Company
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TicketRollupSummary-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-companies-company-id-orders-order-id-id-tickets-rollup-summary
      description: 'Retrive `TicketRollupSummary` for an `Order`.

        Filter usage:

        * filter on ticket source: `filter[sources]`

        '
      parameters:
      - $ref: '#/components/parameters/filter-sources'
      x-stoplight:
        id: lrtsaqw83ugg6
  /v1/companies/{company-id}/settlements/{settlement-id}/tickets:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - schema:
        type: string
        format: uuid
      name: settlement-id
      in: path
      required: true
      description: Settlement ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Tickets for a Settlement for a Company
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-settlements-settlement-id-tickets
      x-stoplight:
        id: m7n8o9p0q1r2s
      x-internal: true
      description: Retrieve `Tickets` for a `Settlement`.
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
  /v1/companies/{company-id}/tickets:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Tickets that belong to a Company
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: pyvvst6d54d5t
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-companies-company-id-tickets
      x-stoplight:
        id: zdk5o9cvbnl7t
      description: 'Retrieve `Tickets` that belong to a `Company` by `ID`


        Filter usage:

        * to filter a from date: `filter[from_date]`

        * to filter a to date: `filter[to_date]`'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - schema:
          type: string
          format: date-time
        in: query
        name: filter[from_date]
        description: Start range of ticket.created_at
      - schema:
          type: string
          format: date-time
        in: query
        name: filter[to_date]
        description: End range of ticket.created_at
      - schema:
          type: boolean
        in: query
        name: filter[flagged]
        description: Filter to only flagged or un-flagged Tickets
      - $ref: '#/components/parameters/filter-sources'
  /v1/direct_uploads:
    parameters:
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create a DirectUpload
      tags:
      - Tickets
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/DirectUpload-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-direct_uploads
      x-stoplight:
        id: tgme583womicv
      description: 'Create a `DirectUpload`.


        The `checksum` _must_ be calculated exactly the way `rails` expects it ([javascript example](https://github.com/rails/rails/blob/main/activestorage/app/javascript/activestorage/file_checksum.js)).


        You should upload the file to `direct_upload.url` using any provided headers from `direct_upload.headers`.


        Once this is done you can use `signed_id` in place of a file in any endpoint that accepts file uploads.'
      x-internal: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectUpload-Create'
  /v1/jobs/{job-id}/tickets:
    parameters:
    - schema:
        type: string
      name: job-id
      in: path
      required: true
      description: Job ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Tickets for a Job
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-jobs-job-id-tickets
      x-stoplight:
        id: mvwxdiz0x5hf8
      description: 'Retrive `Tickets` for a `Job`.

        Filter usage:

        * to filter a from date: `filter[from_date]`

        * to filter a to date: `filter[to_date]`

        '
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - schema:
          type: string
        in: query
        name: filter[from_date]
        description: Start range of ticket.created_at
      - schema:
          type: string
        in: query
        name: filter[to_date]
        description: End range of ticket.created_at
      - schema:
          type: boolean
        in: query
        name: filter[flagged]
        description: Filter to only flagged or un-flagged Tickets
      - $ref: '#/components/parameters/filter-sources'
  /v1/orders/{order-id}/tickets:
    parameters:
    - schema:
        type: string
      name: order-id
      in: path
      required: true
      description: Order ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Tickets for an Order
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-orders-order-id-id-tickets
      description: 'Retrive `Tickets` for an `Order`.

        Filter usage:

        * to filter a from date: `filter[from_date]`

        * to filter a to date: `filter[to_date]`

        '
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - schema:
          type: string
        in: query
        name: filter[from_date]
        description: Start range of ticket.created_at
      - schema:
          type: string
        in: query
        name: filter[to_date]
        description: End range of ticket.created_at
      - schema:
          type: boolean
        in: query
        name: filter[flagged]
        description: Filter to only flagged or un-flagged Tickets
      - $ref: '#/components/parameters/filter-sources'
      x-stoplight:
        id: ncxsngghpi7ea
      deprecated: true
  /v1/orders/{order-id}/tickets/rollup_summary:
    parameters:
    - schema:
        type: string
      name: order-id
      in: path
      required: true
      description: Order ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Ticket Rollup Summary for an Order
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TicketRollupSummary-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-orders-order-id-id-tickets-rollup-summary
      description: 'Retrive `TicketRollupSummary` for an `Order`.

        Filter usage:

        * filter on ticket source: `filter[sources]`

        '
      parameters:
      - $ref: '#/components/parameters/filter-sources'
      x-stoplight:
        id: gflnfaum35oba
      deprecated: true
  /v1/tickets:
    parameters:
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create a Ticket
      operationId: post-v1-tickets
      responses:
        '201':
          description: Created
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
                required:
                - data
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: grug3kaa54qpn
      tags:
      - Tickets
      description: 'Create a `Ticket`


        This endpoint requires the `create_ticket` permission'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket-Create'
    get:
      summary: Retrieve Tickets that belong to the current Company
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: tria7go8pqqi9
                    items:
                      $ref: '#/components/schemas/Ticket-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: get-v1-tickets
      x-stoplight:
        id: ip4clt2871jqj
      description: 'Retrieve `Tickets` for a `Company`


        Filter usage:

        * to filter a from date: `filter[from_date]`

        * to filter a to date: `filter[to_date]`'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - schema:
          type: string
        in: query
        name: filter[from_date]
        description: Start range of ticket.created_at
      - schema:
          type: string
        in: query
        name: filter[to_date]
        description: End range of ticket.created_at
      - schema:
          type: boolean
        in: query
        name: filter[flagged]
        description: Filter to only flagged or un-flagged Tickets
      x-internal: true
  /v1/tickets/{id}:
    parameters:
    - schema:
        type: string
      name: id
      in: path
      required: true
      description: Ticket ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve a single Ticket
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-tickets-id
      x-stoplight:
        id: l4iqzqn7t4xzj
      description: Retrieve `Ticket` by ID
    patch:
      summary: Update a Ticket
      operationId: patch-v1-tickets-id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
                required:
                - data
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: ukwpwcy5dis0t
      tags:
      - Tickets
      description: 'Update a `Ticket` by ID


        This endpoint requires the `edit_ticket` permission'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket-Update'
    delete:
      summary: Delete a Ticket
      operationId: delete-v1-tickets-id
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: yraim58bdmx84
      tags:
      - Tickets
      description: 'Delete a `Ticket` by ID


        This endpoint requires the `delete_ticket` permission'
  /v1/tickets/{ticket-id}/ai_metadata:
    parameters:
    - schema:
        type: string
      name: ticket-id
      in: path
      required: true
      description: Ticket ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve a single Ticket's AI metadata
      tags:
      - Tickets
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Metadata-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-tickets-ticket-id-ai-metadata
      x-stoplight:
        id: aaaqzqn7t4xzj
      description: Retrieve `Ticket`'s AI metadata by ID
  /v1/tickets/{ticket-id}/approve:
    parameters:
    - schema:
        type: string
      name: ticket-id
      in: path
      required: true
      description: Ticket ID
    - $ref: '#/components/parameters/Accept-Language'
    put:
      summary: Approve a Ticket
      operationId: put-v1-tickets-ticket-id-approve
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '409':
          $ref: '#/components/responses/StateError'
        '415':
          $ref: '#/components/responses/Error'
      description: 'Approve a `Ticket` by ID


        This endpoint requires the `edit_ticket` permission.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
      x-stoplight:
        id: p7hd8j339m33d
      tags:
      - Tickets
  /v1/tickets/{ticket-id}/image:
    parameters:
    - schema:
        type: string
      name: ticket-id
      in: path
      required: true
      description: Ticket ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Update the Image that belongs to a Ticket
      operationId: post-v1-tickets-ticket-id-image
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
                required:
                - data
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: j9qfptfyqfedu
      tags:
      - Tickets
      description: "Add or replace the `image` for a `Ticket`. \n\nThis endpoint requires the `edit_ticket` `IamPermission`\n\nThe following restrictions apply:\n * `image` must be one of the following image types:`jpeg`, `jpg`.\n\n* If you're using a `DirectUpload` then you must use the `application/json` mime-type and `image` must be the `DirectUpload`'s `signed_id`\n* If you're using a file then you must use the `multipart/form-data` mime-type and `image` must be a file."
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Ticket-Image-Create'
          application/json:
            schema:
              $ref: '#/components/schemas/Ticket-Image-Create'
    delete:
      summary: Delete the Image that belongs to a Ticket
      operationId: delete-v1-tickets-ticket-id-image
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      x-stoplight:
        id: 0jji2xykebe3z
      tags:
      - Tickets
      description: "Delete the `image` for a `Ticket`. \n\nThis endpoint requires the `delete_ticket` `IamPermission`"
  /v1/tickets/{ticket-id}/void:
    parameters:
    - schema:
        type: string
      name: ticket-id
      in: path
      required: true
      description: Ticket ID
    - $ref: '#/components/parameters/Accept-Language'
    put:
      summary: Void a Ticket
      operationId: put-v1-tickets-ticket-id-void
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/Ticket-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '409':
          $ref: '#/components/responses/StateError'
        '415':
          $ref: '#/components/responses/Error'
      description: 'Void a `Ticket` by ID.


        This endpoint requires the `edit_ticket` permission.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
      x-stoplight:
        id: 9hs3hplf1xkrm
      tags:
      - Tickets
components:
  schemas:
    Ticket-Create:
      title: Ticket-Create
      x-stoplight:
        id: 131qvudbt31h8
      type: object
      required:
      - unit_of_measure
      properties:
        quantity:
          type: number
          x-stoplight:
            id: 68w2mgm2lle6k
          nullable: true
        ticket_number:
          type: string
          x-stoplight:
            id: p67knkzoxujnd
          nullable: true
        unit_of_measure:
          $ref: '#/components/schemas/OrderUnitOfMeasure'
        job_id:
          type: string
          x-stoplight:
            id: 9m3xrz2jrzpcv
          format: uuid
          nullable: true
        material_id:
          type: string
          x-stoplight:
            id: emc067k3odhah
          format: uuid
          nullable: true
        load_id:
          type: string
          x-stoplight:
            id: qilqgc5qwadfb
          format: uuid
          nullable: true
        printed_at:
          type: string
          x-stoplight:
            id: 2ufj0pk9uzf82
          format: date-time
          nullable: true
        service_date:
          type: string
          x-stoplight:
            id: yimcofg0r55xa
          format: date-time
          nullable: true
        source:
          $ref: '#/components/schemas/TicketSource'
      additionalProperties: false
    TicketRollupSummary-Read:
      title: TicketRollupSummary-Read
      x-stoplight:
        id: 8hl2dv5xu3hc6
      type: object
      required:
      - external_vendor_name
      - external_truck_id
      - total_tickets_count
      - total_tickets_missing_job_count
      - total_tickets_quantity
      - total_tickets_missing_job_quantity
      properties:
        external_vendor_name:
          type: string
          x-stoplight:
            id: nym1xtyupjjk0
        external_truck_id:
          type: string
          x-stoplight:
            id: ywebg5780jiy3
        total_tickets_count:
          type: integer
          x-stoplight:
            id: gqtwnjam89ci4
        total_tickets_missing_job_count:
          type: integer
          x-stoplight:
            id: qw71s1luaetyn
        total_tickets_quantity:
          type: number
          x-stoplight:
            id: 8slo9pd137h0m
        total_tickets_missing_job_quantity:
          type: number
          x-stoplight:
            id: xxy6yaadsn4ty
        unit_of_measure:
          $ref: '#/components/schemas/OrderUnitOfMeasure'
      additionalProperties: false
    DirectUpload-Read:
      title: DirectUpload-Read
      x-stoplight:
        id: ge5fs3tk8yb8k
      type: object
      required:
      - id
      - byte_size
      - checksum
      - content_type
      - created_at
      - filename
      - key
      - service_name
      - signed_id
      - direct_upload
      properties:
        id:
          type: string
          x-stoplight:
            id: lzwkhbbuc30lt
          format: uuid
        byte_size:
          type: integer
          x-stoplight:
            id: zdq5i2km7dbdd
        checksum:
          type: string
          x-stoplight:
            id: pfgyb7ctywy3o
        content_type:
          type: string
          x-stoplight:
            id: id6fbesbolbxu
        created_at:
          type: string
          x-stoplight:
            id: qkkile7jxkghk
          format: date-time
        filename:
          type: string
          x-stoplight:
            id: nh2lxjat0biia
        key:
          type: string
          x-stoplight:
            id: saakohyy5kvvz
        metadata:
          type: object
          x-stoplight:
            id: zlk0ufjqtjaxq
        service_name:
          type: string
          x-stoplight:
            id: br0ew9wo8145q
        signed_id:
          type: string
          x-stoplight:
            id: zvuflukjwdj16
        direct_upload:
          type: object
          x-stoplight:
            id: e4cw0bh9x1t4n
          required:
          - url
          properties:
            url:
              type: string
              x-stoplight:
                id: l0qwu7ya2mng0
              format: uri
            headers:
              type: object
              x-stoplight:
                id: jgxk00g0qfrub
      additionalProperties: false
    Error-Response:
      title: Error-Response
      x-stoplight:
        id: 52cydhphee3qe
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
      additionalProperties: false
    StateError-Response:
      title: StateError-Response
      x-stoplight:
        id: i0wsk2gmnaqup
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/StateError'
      additionalProperties: false
    Error:
      title: Error
      x-stoplight:
        id: 3g57kkik3l464
      type: object
      description: An Error.
      required:
      - code
      properties:
        code:
          type: string
          x-stoplight:
            id: 7o9x1t8v0bgfo
      additionalProperties: false
    Ticket-Read:
      title: Ticket-Read
      x-stoplight:
      

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